双向链表在开头插入元素
1. 双向链表的基本概念
双向链表(Double Linked List)是一种线性数据结构,其中每个节点不仅包含数据部分,还包含两个指针:一个指向前驱节点,另一个指向后继节点。这种结构使得我们可以轻松地在链表中双向遍历,从而在某些应用场景中提供了更高的灵活性和效率。
双向链表的每个节点由三个部分组成:
- 数据域(Data Field):存储实际数据。
- 前驱指针(Previous Pointer):指向当前节点的前一个节点。
- 后继指针(Next Pointer):指向当前节点的下一个节点。
以下是双向链表节点的结构定义:
struct node {
int data; // 数据域
struct node *prev; // 前驱指针
struct node *next; // 后继指针
};
2. 在双向链表头部插入新节点
在双向链表的头部插入新节点是一项常见的操作,它涉及到更新链表的头指针以及新节点的前后指针。以下是具体的插入步骤:
- 分配内存 :为新节点分配内存。
- 初始化新节点 :设置新节点的数据部分和前后指针。
- 更新指针 :将新节点插入到链表头部,并更新相关指针。
2.1 分配内存
首先,