用c语言生成一个带头结点的单链表
时间: 2023-05-17 10:06:28 浏览: 75
好的,以下是用 C 语言生成一个带头结点的单链表的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node *next;
} Node;
// 创建链表
Node *createList() {
Node *head = (Node *)malloc(sizeof(Node)); // 创建头结点
head->next = NULL; // 头结点的指针域置为 NULL
Node *tail = head; // 定义尾指针,初始指向头结点
int data;
printf("请输入链表中的元素,输入 -1 结束:\n");
while (1) {
scanf("%d", &data);
if (data == -1) {
break;
}
Node *node = (Node *)malloc(sizeof(Node)); // 创建新节点
node->data = data; // 赋值
node->next = NULL; // 新节点的指针域置为 NULL
tail->next = node; // 将新节点插入到尾部
tail = node; // 更新尾指针
}
return head; // 返回头结点
}
// 遍历链表
void traverseList(Node *head) {
Node *p = head->next; // 定义指针,初始指向第一个节点
printf("链表中的元素为:");
while (p != NULL) {
printf("%d ", p->data);
p = p->next; // 指针后移
}
printf("\n");
}
int main() {
Node *head = createList(); // 创建链表
traverseList(head); // 遍历链表
return 0;
}
```
希望能够帮到你!