從尾到頭列印單鏈表

2021-09-03 09:49:06 字數 522 閱讀 3282

可運用兩種方法列印:

方法一:迴圈演算法

方法二:遞迴壓棧呼叫

方法一:

先呼叫我們已經寫好的煉表頭檔案list.h鍊錶構造方面不過多說明。

void printreverse(listnode *first)

// 要列印的結點

printf("%d ", cur->data);

end = cur;

}}

1.通過cur->next !=end迴圈語句,當為空時,我們退出迴圈。並且輸出最後的結構體單元。

2.通過給*end孔結構體賦值最後的cur的實現從尾到頭輸出。

方法二:

void printreverserecursion(listnode *first)

else

}

我們通過遞迴壓棧,實現函式體與函式語句之間的迴圈,最後列印最後端取出元素依次列印結果。

從尾到頭列印單鏈表

由於單鏈表只能從按單個方向訪問下乙個節點,而不能訪問前乙個節點。首先,解決這個問題肯定要遍歷鍊錶。遍歷的順序是從頭到尾的順序,可輸出的順序卻是從尾到頭。也就是說第乙個遍歷到的結點最後乙個輸出,而最後乙個遍歷到得結點第乙個輸出。這就是典型的 後進先出 可以用 棧實現這種順序。實現程式過程 每經過乙個結...

從尾到頭列印單鏈表

include using namespace std include includetypedef struct node 節點結構 node node create 尾插法建立單鏈表 else q p p node malloc sizeof node p next null if flag 0...

從尾到頭列印單鏈表

思路 1 上面的題的要求就是逆序列印單鏈表 2 方式1 先將單鏈表進行反轉操作,然後再遍歷即可,這樣的做法的問題是會破壞原來的單鏈表的結構,不建議 3 方式2 可以利用棧這個資料結構,將各個節點壓入到棧中,然後利用棧的先進後出的特點,就實現了逆序列印的效果 public static void re...