c语言用尾插法建立链表
时间: 2024-03-13 12:39:10 浏览: 70
下面是使用C语言尾插法建立链表的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data; // 数据域
struct Node *next; // 指针域
} Node;
// 尾插法建立链表
Node *createList() {
Node *head = NULL; // 定义头指针
Node *tail = NULL; // 定义尾指针
int data; // 定义数据变量
printf("请输入数据,输入-1结束:\n");
while (1) {
scanf("%d", &data);
if (data == -1) {
break;
}
Node *newNode = (Node *)malloc(sizeof(Node)); // 创建新节点
newNode->data = data; // 赋值数据
newNode->next = NULL; // 新节点的指针域初始化为NULL
if (head == NULL) { // 如果链表为空,头指针和尾指针都指向新节点
head = newNode;
tail = newNode;
} else { // 如果链表不为空,尾指针指向新节点,尾指针后移
tail->next = newNode;
tail = newNode;
}
}
return head; // 返回头指针
}
// 遍历链表
void traverseList(Node *head) {
printf("链表的数据为:");
Node *p = head;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main() {
Node *head = createList(); // 创建链表
traverseList(head); // 遍历链表
return 0;
}
```
阅读全文