c语言怎么用尾插法建立带头节点的单链表
时间: 2024-10-12 15:15:44 浏览: 21
在 C 语言中,使用尾插法(也称为尾部链接法)创建一个带头节点的单链表通常涉及到以下步骤:
1. 定义头结点:首先需要定义一个头结点,这个头结点并不存储实际的数据,主要用于表示链表的存在。
```c
typedef struct ListNode {
int data; // 数据域
struct ListNode *next; // 指针域,指向下一个节点
} ListNode;
```
2. 创建头结点:初始化一个空链表时,先创建一个头节点,并设置 `next` 指针指向 `NULL`。
```c
ListNode *head = (ListNode*)malloc(sizeof(ListNode));
head->data = 0; // 根据需求可以赋初值
head->next = NULL;
```
3. 尾插操作:对于往链表尾部添加新节点的操作,可以在当前最后一个节点的 `next` 指针处插入新节点,而不是直接修改最后一个节点。
```c
void insertTail(ListNode **head, int data) {
ListNode *newNode = (ListNode*)malloc(sizeof(ListNode)); // 新建节点
newNode->data = data;
newNode->next = NULL;
if (*head == NULL) { // 链表为空的情况
*head = newNode;
return;
}
ListNode *lastNode = *head;
while (lastNode->next != NULL) { // 找到最后一个节点
lastNode = lastNode->next;
}
lastNode->next = newNode; // 插入新节点到尾部
}
```
4. 使用示例:
```c
void buildHeadedList() {
// 初始化一个带头节点的链表并添加元素
insertTail(&head, 1);
insertTail(&head, 2);
insertTail(&head, 3);
}
```
阅读全文