#include<stdio.h>
#include<malloc.h>
#define zheng int
typedef struct LNode{
zheng data;
struct LNode *next;
}LNode,*Linklist;
//头插法建立链表
Linklist toucha(int n){
Linklist l;
l=(LNode*)malloc(sizeof(LNode));//对他分配空间
l->next =NULL;//最后一个线性表指向null
int t;
while(n--){
Linklist s;//创建链表作为中介
s=(LNode*)malloc(sizeof(LNode));//给s分配空间
scanf("%d",&t);
s->data=t;//把t的值给s这个结构的数据 指针用-> 整型用.
s->next=l->next;//第二个表代替l指向NULL,后一个表指向前一个表
l->next=s;
}
return l;
}
//尾插法建立链表
Linklist weicha(int n)
{
Linklist l,p;
int t;
l=(LNode*)malloc(sizeof(LNode));
l->next=NULL;
p=l;
while(n--)
{
Linklist s;
s=(LNode*)malloc(sizeof(LNode));
scanf("%d",&t);
s->data=t;
p->next=s;//新建一个链表p,当两个链表相同时作用也相同,让p的下一个为新表
p=s;//让p成为新表,把从l开始的表按顺序连起来
}
p->next=NULL;
return l;
}
//遍历输出链表
Linklist shuchu(Linklist l)
{
l=l->next;
while(l)
{
printf("%d ",l->data);
l=l->next;
}
}
int main(){
int n;
scanf("%d",&n);
Linklist l;
l=toucha(n);
shuchu(l);
}
C语言《头插法、尾插法建立链表》
最新推荐文章于 2022-04-30 10:26:22 发布