头插法和尾插法建立链表
#include<stdio.h>
#include<stdlib.h>
struct s
{
int a;
struct s*next;
};
int main()
{
struct s*head,*q,*p,*l,*s;
//头插法
head=(structs *)malloc(sizeof(struct s));//创建头结点
head->next=NULL;//头指针指向头结点
int i;
for(i=0;i<10;i++)//结点个数
{
p=(struct s*)malloc(sizeof(struct s));//创建节点
p->a=i;// 结点赋值
p->next=head->next;
head->next=p;
}
p=head->next;
//头插法输出
while(p!=NULL)
{
printf("%d ",p->a);
p=p->next;
}
printf("\n");
//尾插法
l=(struct s*)malloc(sizeof(struct s));
s=l;
for(i=0;i<10;i++)
{
q=(structs*)malloc(sizeof(struct s));
q->a=i;
s->next=q;
s=q;
}
s->next=NULL;
q=l->next;
//尾插法输出
while(q!=NULL)
{
printf("%d ",q->a);
q=q->next;
}
return 0;
}