C语言实现尾插法建立一个单链表,并输出
时间: 2024-09-26 15:08:43 浏览: 94
尾插法是一种在链表末尾添加新节点的方法,在C语言中,我们可以创建一个简单的结构体表示链表节点,然后定义一个函数专门用于在链表的末尾插入节点。下面是一个基本的实现步骤:
首先,定义链表节点结构体:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
```
接下来,编写一个函数`appendTail`来实现尾插法:
```c
void appendTail(Node** head, int value) {
// 如果链表为空,直接新建节点并设置头指针
if (*head == NULL) {
*head = (Node*)malloc(sizeof(Node));
(*head)->data = value;
(*head)->next = NULL;
return;
}
// 否则,遍历到链表末尾并插入新节点
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = (Node*)malloc(sizeof(Node)); // 新建节点
current->next->data = value; // 设置数据
current->next->next = NULL; // 更新链表尾部
}
```
为了输出链表的内容,你需要再添加一个遍历链表的函数:
```c
void printList(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("%d -> ", temp->data);
temp = temp->next;
}
printf("NULL\n");
}
```
现在你可以结合这两个函数来创建和打印链表:
```c
int main() {
Node* head = NULL;
appendTail(&head, 1); // 插入第一个元素
appendTail(&head, 2); // 插入第二个元素
appendTail(&head, 3); // 插入第三个元素
printf("链表内容:\n");
printList(head);
return 0;
}
```
运行上述程序,你会看到链表的末尾逐次插入了数字1、2、3。
阅读全文