將新結點插入連結串列

2022-03-08 22:24:55 字數 1974 閱讀 6842

1樓:匿名使用者

struct student *insert(struct student *head,struct student *new)

else//如果原來連結串列非空,則將新結點插入適當位置,使新連結串列資料仍保持公升序

if(new->num<=p->num)

else

//如果之前找插入位置的迴圈是因為已經找到連結串列尾而結束的//那麼將新結點放到連結串列尾部

}count++;

return(head);

} 看程式**不能只看**,要先從邏輯上想好乙個結點插入連結串列會有哪些情況,再去看**印證你的想法.

2樓:情感世界

//這程式你首先要明白各指標是什麼意思!head,p,q,nextwhile((new->num>p->num)&&(p->next!=null))//為了尋找插入點

if(new->num<=p->num)//找到點else//鏈尾

}count++;連結串列結點數加一

return(head);//返回乙個連結串列的首位址,,通過訪問它(head)就可以訪問連結串列}

資料結構的問題…… (編寫演算法實現在帶頭結點的單鏈表l中值為x的節點前插入元素為e的新節點)怎麼寫啊?

3樓:低↓頭吻伱

linklist listinsert(linklist l,int x,elemtype e)

//找第x-1個節點

if(p==null || j>x-1)s=(linklist) malloc(sizeof(lnode)); //建立新節點,其資料為e

s->data=e;

s->next=p->next; //新節點插入在第x-1個節點的後面

p->next=s;

return l;}

建立一包含10個整型數的單鏈表,表中元素遞增有序,將一新資料值x插入到單鏈表適當位置,保持單鏈表的有序性

關於連結串列插入 刪除節點的問題

4樓:德克and德華

問等號兩邊互換這種問題還真少見。。一般見的也就是某兩句的位置能否互換

s->next=p->next;/*新結點指標域指向p的後繼結點*/

不能互換。你可以看到這句語句的上隔上乙個語句s=(linklist)malloc(sizeof(lnode)),它是新malloc出來的,s裡面的東西都是「垃圾值」,你如果把s的指標域(垃圾值)賦給p的指標域有什麼意義?

p->next=s;/*新結點成為p的後繼結點*/

不能互換。如果有s=p->next,結合上一句s->next=p->next;/*新結點指標域指向p的後繼結點*/,這時,s居然等於s的指標域,讓人有點凌亂。

q=p->next; /* q指向p的後繼結點*/

不能互換。q可以理解為乙個」臨時「的指標變數,用它來暫時指向p的下乙個結點(即那個將被刪除的結點)的資料,好讓p可以直接指向它的再下乙個節點,如果沒有這個q,當p指向它的再下乙個結點後,即將被刪除那個結點將無處可尋。q一開始也是個「垃圾值」,把乙個垃圾值賦給p的指標域沒意義。

p->next=q->next;/*q的後繼結點成為p的後繼結點*/

還是不能互換。這時的q指向的已經是p的下乙個結點,這是乙個將被刪除的結點,如果你把p->next賦給這個將被刪除的結點的指標域,那麼這個結點刪除後,你的p結點將無處可尋,你的連結串列也被你搞斷了。

5樓:匿名使用者

這個問題其實很簡單,能不能互換,要看情況。

單向連結串列,插入節點,其實就是先讓新的節點的next執行插入點的後乙個,在讓插入位置的next執行插入的節點的指標。

如果反了順序,你想一下後果吧,那就是後面的節點丟失了,因為沒有儲存p->next,就改變了,但是新節點沒有接上後面的節點。

雙向連結串列繁瑣,但是基本的思路還是那樣。先接上next,在吧前面的節點指向這個新節點

在單鏈表中,已知q所指結點是p所指結點的直接前驅,若在q

q next表示結點中存放的指標,該指標用來指向某個結點。原來的連線關係是q next p,意思是q中存放的指標的值是p,即q指向p。比如 原來排隊p在q的後面,現在要插乙個s在他們中間,需要做的事就是把原來p,q二人的聯絡轉化為p,s,q三人的聯絡,先讓p指向s,即q next s 然後讓s指向q...

設指標變數p指向單鏈表中的結點A,現在需要刪去結點A,有哪些步驟,可以給我畫個圖讓我明白些嗎?急求

從head節點開始搜尋,找到a的前驅節點b,即b next a將a的前驅節點的後繼節點修改為a的後繼節點即b next a next 釋放a佔用的空間,即free a q p next p data q data p next q next free q 4.設指標變數p指向單鏈表中結點a,指標變數...

將連結串列大小排序為何我實現不了啊

兩個問題 1 sort函式實現不對,給你改了一下 此處排序用的是冒泡!另 盡量不要用goto語句!以下函式,無法實現,執行後為何沒有printf 顯示排列後的大小呢 void sort pnode phead pn pn pnext 移位 pf pf pnext pnode p phead pnex...