请根据用户的输入创建一个线性表,以0作为结尾。 以链式结构(链表)的方式去保存线性表中的数据。
定义结构体
#include <stdio.h>//printf
#include <stdlib.h>//malloc
#include <string.h>//strlen
typedef int Elemtype; //数据元素的类型
//定义数据节点
typedef struct node
{
Elemtype data; //数据域:保存数据本身用的
struct node *next; //指针域:用来保存关系用的,保存下一个数据节点的地址
}Node;
/*
Create_Linklist:从终端上获取用户的输入并将其保存到一条单链表中
@return : 返回创建好单链表的首节点的地址
*/
Node *Create_Linklist()
{
int n;
Node *head = NULL;
Node *tail = NULL;
while (1)
{
scanf("%d",&n);
if (n == 0)
break;
Node *pnew = (Node *)malloc(sizeof(Node));
pnew->data = n;
pnew->next = NULL;
if(tail == NULL){
head = tail = pnew;
}
else{
tail->next = pnew;
tail = pnew;
}
}
return head;
}
/*
Print_Lisklist:将一条单链表打印出来
@list : 要打印的链表
*/
void Print_Linklist(Node *list)
{
Node *p = list;
while(p){
printf("%d ",p->data);
p = p->next;
}
putchar('\n');
}
//请根据用户的输入创建一个线性表,以0作为结尾。
//以链式结构(链表)的方式去保存线性表中的数据。
int main()
{
Node *list = Create_Linklist();//list指向创建出来的单链表的首节点
Print_Linklist(list);
return 0;
}
**运行结果**