下面是在C语言中向链接列表添加节点的完整使用攻略:
1. 定义节点结构体
首先需要定义一个节点结构体,例如:
typedef struct Node {
int data; // 存储数据的字段
struct Node *next; // 存储下一个节点地址的指针
} Node;
2. 定义链表的头节点
链表的头节点是指整个链表的入口,可以通过它找到链表中的其他节点。定义链表的头节点代码如下:
Node *head = NULL; // 头节点初始化为空
3. 添加新的节点
添加新节点的步骤如下:
3.1. 创建新节点
创建一个新的节点并分配内存:
Node *newNode = (Node*)malloc(sizeof(Node));
3.2. 给节点赋值
给节点的字段赋值,例如:
newNode->data = 123;
newNode->next = NULL;
3.3. 将新节点插入链表
将新节点插入链表中,可以采用以下两种方式:
3.3.1. 将新节点插入链表的头部
newNode->next = head; // 新节点指向原头节点
head = newNode; // 新节点成为新的头节点
3.3.2. 将新节点插入链表的尾部
if (head == NULL) {
head = newNode; // 如果链表为空,则新节点成为头节点
} else {
Node *current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
以上代码将新节点插入到链表的最后位置。
示例说明
以下是两个示例说明:
示例1:向链表头部添加节点
Node *head = NULL; // 定义链表头节点
for (int i = 0; i < 5; i++) {
Node *newNode = (Node*)malloc(sizeof(Node)); // 分配新节点内存
newNode->data = i; // 给新节点赋值
newNode->next = head; // 新节点指向原头节点
head = newNode; // 新节点成为新的头节点
}
以上代码将5个节点分别添加到链表的头部。
示例2:向链表尾部添加节点
Node *head = NULL; // 定义链表头节点
for (int i = 0; i < 5; i++) {
Node *newNode = (Node*)malloc(sizeof(Node)); // 分配新节点内存
newNode->data = i; // 给新节点赋值
newNode->next = NULL; // 新节点的next指针初始化为NULL
if (head == NULL) {
head = newNode; // 如果链表为空,则新节点成为头节点
} else {
Node *current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode; // 将新节点插入到链表的最后位置
}
}
以上代码将5个节点分别添加到链表的尾部。
最后,记得释放内存,否则会造成内存泄漏。