1. 程式人生 > >單鏈表的整表建立--頭插法,尾插法

單鏈表的整表建立--頭插法,尾插法

建立單鏈表的過程是一個動態生成連結串列的過程。應依次建立各個結點,並逐個插入連結串列
給出頭插法

//隨機產生n個元素的值,建立代表頭結點的單鏈線性表L(頭插法)
void CreateListHead(LinkList * L,int n)
{
	LinkList p;
	int i;
	srand(time(0));	//隨機產生數
	*L = (LinkList)malloc(sizeof(Node));
	(*L)->next = NULL;	//先建立一個帶頭結點的單鏈表
	for (i=0;i<n;i++)
	{
		p = (LinkList)malloc(sizeof(Node));	//生成新結點
		p->data = rand()%100+1;	//隨機生成1001以內的數字
		p->next = (*L)->netx;
		(*L)->next = p;	//插入到表頭
	}
}

尾插法:

//隨機產生n個元素的值,建立代表頭結點的單鏈線性表L(頭插法)
void CreateListTail(LinkList * L,int n)
{	
	LinkList p,r;
	int i;
	srand(time(0));	//隨機產生數
	*L = (LinkList)malloc(sizeof(Node));
	r = *L;
	for (i=0;i<n;i++)
	{
		p = (LinkList)malloc(sizeof(Node));	//生成新結點
		p->data = rand()%100+1;	//隨機生成1001以內的數字
		r->next = p;	//將表尾終端結點指向新結點
		r = p;	//將當前新結點定義為表尾終端結點
	}
	r->next = NULL;	//表示當前連結串列結束
}