C語言 鏈表結(jié)點的插入操作
鏈表的插入操作就是根據(jù)一定條件將新產(chǎn)生的結(jié)點插入到已經(jīng)存在的鏈表中。
例如假設(shè)一個鏈表是有序的,現(xiàn)將數(shù)字11插入到鏈表中,使鏈表仍有序。鏈表結(jié)點的插入操作分為如下幾步:
①申請一個新結(jié)點,存放需要插入的數(shù)字。
②查找該結(jié)點應(yīng)該存放的位置。從第一個結(jié)點開始查找新結(jié)點應(yīng)該插入的位置,因為鏈表是有序存放的,所以可以用新結(jié)點的值依次和鏈表中的每個結(jié)點的數(shù)據(jù)域比較,如果新結(jié)點的值大,指針后移到下一個結(jié)點,繼續(xù)比較,直到找到一個結(jié)點的值比新結(jié)點的值小,那么該結(jié)點的前面就是新結(jié)點應(yīng)插 入的位置。具體過程如圖所示。
③將新結(jié)點插入到指定的位置。
插入結(jié)點函數(shù)insert()程序代碼如下:
void insert(SLIST *h,int x)
{
int i;
SLIST *p,*q,*t;
p=h;
q=(SLIST *)malloc(sizeof(SLIST));
q->data ==x;
while(p!=NULL)
{
if(x>p->data )
{
t=p;
p=p->next;
}
else
break;
}
q->next =p;
t->next =q;
}
點擊加載更多評論>>