版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linxizi0622/article/details/73716252
#include "stdio.h"
#include "stdlib.h"
typedef struct List
{
int data;
struct List *next; //指针域
}List;
void HeadCreatList (List *L)
//头插法建立链表
{ List *s;
L->next=NULL;
int i=0;
for (i;i<10;i++)
{
s=(struct List*)malloc(sizeof(struct List));
s->data=i;
s->next=L->next; //将L指向的地址赋值给S;
L->next=s;
}
}
void TailCreatList (List *L)
//尾插法建立链表
{ List *s,*m;
m=L;
int i=0;
for (i;i<10;i++)
{
s=(struct List*)malloc(sizeof(struct List));
s->data=i;
m->next=s;
m=m->next;
}
m->next=NULL;
}
void DisPlay(List *L)
{
List *p=L->next;
while(p!=NULL)
{
printf ("%d ",p->data);
p=p->next;
}
printf("\n");
}
int main () {
List *L1,*L2;
L1=(struct List*)malloc(sizeof(struct List));
L2=(struct List*)malloc(sizeof(struct List));
HeadCreatList(L1);
DisPlay(L1);
TailCreatList(L2);
DisPlay(L2);
#include "stdlib.h"
typedef struct List
{
int data;
struct List *next; //指针域
}List;
void HeadCreatList (List *L)
//头插法建立链表
{ List *s;
L->next=NULL;
int i=0;
for (i;i<10;i++)
{
s=(struct List*)malloc(sizeof(struct List));
s->data=i;
s->next=L->next; //将L指向的地址赋值给S;
L->next=s;
}
}
void TailCreatList (List *L)
//尾插法建立链表
{ List *s,*m;
m=L;
int i=0;
for (i;i<10;i++)
{
s=(struct List*)malloc(sizeof(struct List));
s->data=i;
m->next=s;
m=m->next;
}
m->next=NULL;
}
void DisPlay(List *L)
{
List *p=L->next;
while(p!=NULL)
{
printf ("%d ",p->data);
p=p->next;
}
printf("\n");
}
int main () {
List *L1,*L2;
L1=(struct List*)malloc(sizeof(struct List));
L2=(struct List*)malloc(sizeof(struct List));
HeadCreatList(L1);
DisPlay(L1);
TailCreatList(L2);
DisPlay(L2);
}
头插法就是将一个待插入的数据,插入链表头指针的下一个节点,头指针一直保持不变
尾插法就是将一个数据插入聊边的尾部,头指针总是指向链表的尾部