用C语言写一个代码编写程序建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入0时,表示结束(链表头结点的data域不放数据,表空条件是next==NULL)。
时间: 2024-02-15 17:06:11 浏览: 78
c代码-//带表头结点的单向链表
好的,根据您的要求,我可以给您提供一个简单的 C 语言程序来实现该功能。请参考下面的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
struct node {
int data;
struct node *next;
};
int main() {
struct node *head, *p, *q;
head = (struct node *)malloc(sizeof(struct node)); // 创建头结点
head->next = NULL; // 初始化链表为空
// 输入链表数据
printf("请输入链表数据(输入 0 结束):\n");
p = head;
while (1) {
q = (struct node *)malloc(sizeof(struct node));
scanf("%d", &(q->data));
if (q->data == 0) {
free(q);
break;
}
p->next = q;
p = q;
}
p->next = NULL; // 设置链表尾部
// 输出链表数据
printf("链表数据:");
p = head->next;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
// 释放链表内存
p = head;
while (p != NULL) {
q = p->next;
free(p);
p = q;
}
return 0;
}
```
该程序使用了一个带有头结点的单向链表来存储用户输入的整数数据。程序会首先创建一个头结点,然后通过循环输入链表数据,当输入 0 时表示输入结束。程序最后会输出整个链表的数据,并释放链表内存。
注意:本程序中的链表结构体只包含了一个整数数据,如果需要存储更多的数据,需要扩展链表结构体的定义。此外,本程序中的链表是静态创建的,如果需要动态创建链表,需要使用动态内存分配等更高级的技术。
阅读全文