演算法題 從尾到頭列印單鏈表(新浪面試題)

2021-10-03 14:44:42 字數 553 閱讀 5639

從尾到頭列印單鏈表

逆序列印單鏈表

方式1:先將單鏈表進行反轉操作,然後再遍歷,這樣的話會破壞單鏈表的結構,不建議

方式2:可以利用棧這個資料結構,將各結點壓入棧中,然後利用棧的先進後出的特點,就實現了逆序列印的效果

//可以利用棧這個資料結構,將各個節點壓入到棧中,然後利用棧的先進後出的特點,就實現了逆序列印的效果

public

static

void

reverseprint

(heronode head)

//建立要給乙個棧,將各個節點壓入棧

stack

stack =

newstack

(); heronode cur = head.next;

//將鍊錶的所有節點壓入棧

while

(cur != null)

//將棧中的節點進行列印,pop 出棧

while

(stack.

size()

>0)

}

從尾到頭列印單鏈表

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

從尾到頭列印單鏈表

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...

從尾到頭列印單鏈表

可運用兩種方法列印 方法一 迴圈演算法 方法二 遞迴壓棧呼叫 方法一 先呼叫我們已經寫好的煉表頭檔案list.h鍊錶構造方面不過多說明。void printreverse listnode first 要列印的結點 printf d cur data end cur 1.通過cur next end...