#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 cur;
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++) //循环n次,总是将新结点插入在链表头部,作为第一个元素
{
cur=(LinkList)malloc(len);//申请新节点cur
//cur->next=NULL;
scanf("%d",&(cur->data)); //读入数据
cur->next=head->next;//将第一个元素(head->next)作为新节点cur的后继
head->next=cur; //将cur作为head的后继
}
}
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");
}
表头插入法建立链表
最新推荐文章于 2024-04-02 19:51:33 发布