位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 鏈表結(jié)點的插入操作

提問人:劉團(tuán)圓發(fā)布時間:2020-12-02

鏈表的插入操作就是根據(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é)點插入到指定的位置。

image.png

插入結(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;

}


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部