1. 程式人生 > >頭插法和尾插法建立連結串列

頭插法和尾插法建立連結串列

#include "stdio.h"
#include "stdlib.h"
typedef struct List
{
int data;
struct List *next; //指標域
}List;
void HeadCreatList (List *L)  //頭插法建立連結串列
{
	List *s;
	L->next=NULL;
	for (int i=0;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,*r;
	r=L;
	for (int i=0;i<10;i++)
	{
		s=(struct List*)malloc(sizeof(struct List));
		s->data=i;
		r->next=s;
		r=s;
	}
	r->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);
}