1. 程式人生 > >真題2004 單鏈表插入新元素仍為有序表

真題2004 單鏈表插入新元素仍為有序表

題目:設有序表(遞增)以帶表頭結點的單鏈表儲存。請設計一個函式,實現在該表中插入一個新元素的操作。要求插入後仍為有序表。其結點結構如圖所示。 在這裡插入圖片描述

typedefstructLNode{
	intdata;
	structLNode*next;
}LNode,*LinkList;
LinkListinsert(LinkList&L,int x)             //在單鏈表l中插入結點X
{
	LinkListnewdata,p;                    //定義兩個新結點
	newdata=(LinkList* )malloc(sizeof(LNode));  //分配儲存空間
	newdata->data=x;
	p=L->next;
	while(p){                      //當p所指連結串列中結點存在時,迴圈操作
		if(p->data>x){            //如果待插入小於工作指標p所指結點值
			newdata->next=p;
			p=newdata;
			returnL;
		}
		p=p->next;           
	}
	p=newdata;         //如果待插入大於工作指標p所指結點值
	newdata->next=NULL;
	returnL;
}