當前位置:首頁 » 操作系統 » 單鏈表的逆置演算法

單鏈表的逆置演算法

發布時間: 2023-09-08 21:01:43

1. 下面是用c語言編寫的對不帶頭結點的單鏈表進行就地逆置的演算法,求大神詳細解釋

voidreverse(linklist&L)
{
linklistp=NULL,q=L;
while(q!=NULL){
L=q->next;//保留下一個節點
q->next=p;
p=q;
q=L;//移動到下一個節點
}
L=p;//指向逆置後的頭節點
}

2. 如何用c語言實現單鏈表的逆置

扣著的是頭節點(頭子)

車是首節點(首子)

馬是次節點(次子)

牙簽細的是指針指向,香頭發黑的是指向,鐵頭細的是指向。

根據步驟寫程序的偽演算法(3步4循環,7張圖片搞定),如下:


第一個循環把馬弄到車前面,

第二個循環把相弄到馬前面

第三個循環把士弄到相前面

........

直到香指向為空後停止循環。

代碼如下:只需要一個首結點pHead,就能把鏈表找到,並倒置。具體代碼如下

p香=pHead->pNext;

p鐵=p香->pNext;

p香->pNext=NULL;

P香=p鐵

while(p香 !=NULL)

{

p鐵=p香->pNext;

p香->pNext=pHead->pNext;

pHead->pNext=p香;

p香=p鐵;

}


對照偽演算法(三步四循環),和上面的代碼是一一對應的:

第一步:香頭指向首子,鐵頭指向次子

第二步:刪掉首子指向次子(鐵頭所指向的那個子)的牙簽

第三步:香頭跟著鐵頭

以下循環條件:(條件:香頭指向不為空)

{

循環1:鐵頭移動到香頭的下一個指向

循環2:香頭的下一個指向首子

循環3:頭子的下一個跟著香頭

循環4:香頭跟著鐵頭

}

自己用道具操作幾遍,然後把流程背會,以後自己根據流程寫代碼即可。

3. 用c語言實現單鏈表的逆置,能將此程序詳細的解釋一下嗎

演算法的核心就是reverse函數,其它的都是輔助建立鏈表和輸出鏈表的。
從數據結構的定義來看這是一個帶頭節點的鏈表。要弄的十分明白你要耐心點畫圖看看。我簡單的說下思路:
【head是指向頭結點的】
p=head; //p最開始指向頭結點
s=p->next; //s最開始指向第一個節點
while(s->next!=NULL)//只要沒有到最後一個元素就繼續。最後一個元素的next肯定為NULL
{ //進入核心了樓主
t=s->next; //用t指向s後面的那個元素
s->next=p; //把s指向她前面那個,這個時候就實現了逆向了。而且是就地逆向。元素都沒有動的
p=s; //然後p向後移動s
s=t; //s向後移動到p
這樣到下一輪的時候又可以講下下個再指向剛才那個下一個。一次內推
}
s->next=p; //當最後一個的時候,還是要指向她的前一個。
head->next->next=NULL;//頭指針的下一個是指向原來的第一個。逆向後肯定是最後的那個了。所以最後的一個的next=NULL就明了了。
head->next=s;//s是逆序前的最後一個,逆序後是第一個,所以用頭指向他

畫個圖好好體會下,樓主!

熱點內容
三菱人機界面編程實例 發布:2025-01-31 03:13:04 瀏覽:237
des加密畢業論文 發布:2025-01-31 02:57:01 瀏覽:711
ip跨網段訪問 發布:2025-01-31 02:44:42 瀏覽:709
演算法帶頭人 發布:2025-01-31 02:42:25 瀏覽:552
方舟上傳數據 發布:2025-01-31 02:42:25 瀏覽:836
鈴木uy比uu多了什麼配置 發布:2025-01-31 02:34:11 瀏覽:677
蝦米音樂緩存文件夾 發布:2025-01-31 02:34:04 瀏覽:887
主播用什麼我的世界啟動器玩伺服器 發布:2025-01-31 02:32:37 瀏覽:644
做電腦硬體需要哪些配置 發布:2025-01-31 02:30:53 瀏覽:440
小米智能門鎖驗證密碼是多少 發布:2025-01-31 02:30:50 瀏覽:534