编写程序建立一个带有头结点的单向链表,链表结点中的数据通过键盘输人,当输入0时,表示结束(链表头结点的data域不放数据,表空条件是next==NULL)。
时间: 2024-02-20 12:58:58 浏览: 75
好的,以下是使用 C 语言编写的程序,可以实现建立一个带有头结点的单向链表:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结点
typedef struct node {
int data;
struct node *next;
} Node;
int main() {
Node *head, *tail, *p;
int n;
// 创建头结点
head = (Node *) malloc(sizeof(Node));
head->next = NULL;
tail = head;
// 循环读入数据
while (1) {
printf("请输入数据(输入 0 结束):");
scanf("%d", &n);
if (n == 0) {
break;
}
// 创建新结点
p = (Node *) malloc(sizeof(Node));
p->data = n;
p->next = NULL;
// 将新结点插入到链表尾部
tail->next = p;
tail = p;
}
// 打印链表中的数据
printf("链表中的数据为:");
p = head->next;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
// 释放链表中的内存空间
p = head;
while (p != NULL) {
head = p->next;
free(p);
p = head;
}
return 0;
}
```
在程序运行时,会循环读入数据,当输入 0 时表示结束。每次输入一个数,就会创建一个新结点,并将其插入到链表尾部。当读入完所有数据后,程序会打印链表中的数据,并释放链表中的内存空间。
阅读全文