c语言中如何在结构体链表的尾部增加一个新的节点
时间: 2024-10-10 15:05:34 浏览: 36
在C语言中,要在结构体链表的尾部添加新节点,通常会创建一个结构体类型的指针变量作为链表头,并通过迭代查找最后一个元素,然后将新节点插入到其后。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} Node;
// 在链表尾部添加新节点
void addNodeAtEnd(Node** head, int value) {
// 如果链表为空
if (*head == NULL) {
*head = (Node*)malloc(sizeof(Node)); // 创建并初始化第一个节点
(*head)->data = value;
(*head)->next = NULL;
} else { // 非空链表
Node* current = *head;
while (current->next != NULL) { // 找到最后一个节点
current = current->next;
}
current->next = (Node*)malloc(sizeof(Node)); // 在当前节点之后插入新节点
current->next->data = value;
current->next->next = NULL; // 新节点的下一个节点设为NULL,表示已经到达链表尾部
}
}
// 示例用法
int main() {
Node* listHead = NULL;
addNodeAtEnd(&listHead, 5); // 添加值5到尾部
addNodeAtEnd(&listHead, 10); // 添加值10到尾部
// ... 其他操作 ...
return 0;
}
阅读全文