演算法設計和資料結構學習 6 單鏈表的遞迴逆序

2021-09-24 22:25:07 字數 942 閱讀 6803

單鏈表的逆序方法有很多種,求職過程中會碰到類似的題。比如進棧出棧;變數鍊錶放入陣列後利用陣列的逆序重構鍊錶;遍歷鍊錶時每次訪問的節點都指向它的前節點;遞迴呼叫等。本次實驗是用遞迴的方法實現單鏈表的逆序,網上有很多類似的code.

這次實驗主要要注意的是指標引用的使用,要充分理解引用是個別名,指標的引用可以參考其它網友的一篇博文:指標的引用

實驗內容是先構造乙個隨機指定長度的單鏈表,將其輸出,然後逆序後輸出。

**如下:

//

reverse_list.cpp : 定義控制台應用程式的入口點。

//#include

"stdafx.h

"#include

#include

#include

using

namespace

std;

struct

node;/*

建立長度為n的乙個隨機整數鍊錶

*/node* creat_list(int

n)

return

head;}/*

鍊錶的逆序

*/node* reverse_list(node *plist, node *&head) //

這個函式的返回值並不是最終鍊錶逆序後的煉表頭,而是尾,

//它的頭儲存在head指標裡,所以head用的是指標引用.

else}/*

從頭節點依次顯示煉表裡的元素,注意這裡頭節點裡的元素沒有被當做第乙個元素

*/void show_list(node *p)

cout

<

}int _tmain(int argc, _tchar*ar**)

實驗結果如下:

資料結構學習(六) 單鏈表

線性表中每個節點有唯一的前趨節點和後繼節點 設計鏈式儲存結構時,每個邏輯節點單獨儲存,為了表示邏輯關係,增加指標域 單鏈表 每個物理節點增加乙個指向後繼節點的指標域 雙鏈表 每個物理節點增加乙個指向後繼節點的指標域和乙個指向前趨節點的指標域 typedef struct lnode 定義單鏈表節點型...

資料結構學習筆記 單鏈表

陣列優勢在於快速定位元素,對於讀操作多,寫操作少的場景,陣列更合適 鍊錶優勢在於快速的插入和刪除操作,如果頻繁的在尾部刪除和插入元素,用鍊錶更好 package com.cc.node public class nodedemo1 private node head private node las...

資料結構學習筆記 單鏈表

準備知識在另一篇部落格 單鏈表預備知識 建立單鏈表 頭插法 每次都是從頭結點插入乙個元素的方法,所以它是倒序的。struct lnode 建立結點結構體,由資料域和指標域組成 linknode void createlistf linknode l,elemtype a,int n 從陣列a中讀取資...