c语言单向链表表尾增加
时间: 2024-09-19 16:15:28 浏览: 7
在C语言中,向单向链表的表尾增加元素通常是通过遍历链表找到最后一个节点,然后在其`next`指针处插入新节点的方式来实现的。这里有一个简单的例子说明如何实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
};
// 创建新节点并将其添加到链表尾部
void append(struct Node** head, int value) {
// 如果链表为空,直接创建新节点并设置为头节点
if (*head == NULL) {
struct Node* newNode = (struct Node*) malloc(sizeof(struct Node));
if (newNode != NULL) {
newNode->data = value;
newNode->next = NULL;
*head = newNode;
} else {
printf("Failed to allocate memory for new node.\n");
return;
}
} else {
// 遍历链表直到找到最后一个节点
struct Node* currentNode = *head;
while (currentNode->next != NULL) {
currentNode = currentNode->next;
}
// 在最后一个节点之后添加新节点
struct Node* newNode = (struct Node*) malloc(sizeof(struct Node));
if (newNode != NULL) {
newNode->data = value;
newNode->next = NULL;
currentNode->next = newNode;
} else {
printf("Failed to allocate memory for new node.\n");
}
}
}
// 示例用法
int main() {
struct Node* head = NULL;
append(&head, 1);
append(&head, 2);
append(&head, 3);
return 0;
}