用 c 语言编写一个带头结点双向链表的插入函数
时间: 2024-09-23 07:16:26 浏览: 39
数据结构c版(1)-线性表之双向带头循环链表代码
在 C 语言中,我们可以编写一个用于在双向链表头部插入节点的函数。首先,我们需要定义链表结构体(包含指向前驱和后继节点的指针),然后创建这个插入函数。以下是一个简单的示例:
```c
// 定义双向链表节点结构
typedef struct Node {
int data; // 节点数据
struct Node* prev; // 指向前一个节点
struct Node* next; // 指向后一个节点
} Node;
// 插入函数,将新节点插入到链表头部
void insertAtBeginning(Node** head_ref, int data) {
// 创建新节点
Node* newNode = (Node*)malloc(sizeof(Node));
if (!newNode) {
printf("Memory allocation failed.\n");
return;
}
// 初始化新节点的数据和指针
newNode->data = data;
newNode->prev = NULL;
newNode->next = (*head_ref); // 将新节点指向当前头节点
// 更新头节点指针,如果链表非空
if (*head_ref != NULL) {
(*head_ref)->prev = newNode;
}
*head_ref = newNode; // 新节点成为新的头节点
}
阅读全文