#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
} Lnode, *LinkList;
int len=sizeof(Lnode);
void create(LinkList head);
void disp(LinkList head);
int main()
{
LinkList head=(LinkList)malloc(len);//先申请一个头结点
head->next=NULL;//空链表,head的后继为空
create(head);//建立单链表head
disp(head); //遍历输入单链表head中每个元素的data域中的值
return 0;
}
void create(LinkList head)
{//表尾插入法建立链表
LinkList rear,cur;
int n,i;
rear=head; //rear总是指向最后一个结点
scanf("%d",&n);
for(i=1;i<=n;i++) //循环n次,总是将新结点插入在链表尾部
{
cur=(LinkList)malloc(len); //申请内存
scanf("%d",&(cur->data)); //读入数据
rear->next=cur; //将新节点cur作为表尾结点的后继
rear = cur; //新结点成为表尾结点
}
rear->next=NULL; //表尾结点的next置为空 务必注意,否则链表无法正常结束
}
void disp(LinkList head)
{
LinkList p;
p=head->next;//p指向第一个元素
while(p)//当p不为空
{
printf("%d ",p->data);//输出p的data域的值
p=p->next; //p指向p的后继结点
}
printf("\n");
}
表尾插入法建立链表
最新推荐文章于 2023-04-13 09:41:07 发布