6 從尾到頭列印來單鏈表

2021-10-02 17:37:00 字數 1023 閱讀 3763

一單向鍊錶,從頭到尾開始列印結點。如鍊表1,2,3,4,5;列印出來為5,4,3,2,1

因為棧的特性是先進後出,所以正好符合該題目的要求。我們將鍊錶中的資料,乙個乙個壓入棧中,然後在按照順序,從棧頂向棧底彈出資料。

**:

public

static

void

show

(linkedlist

linkedlist)

//出棧

int count = stack.

size()

;for

(int i =

0; i < count; i++

)}

採用頭插入法,是指在原先的單鏈表上定義兩個指標,乙個為temp初始指向head結點的下乙個結點,另乙個為next初始為null,next表示始終指向temp的下乙個結點。

然後在定義乙個頭結點為head2

將temp的下乙個結點指向head2的下乙個結點,即temp.next = head2.next;

然後將head2的下乙個結點指向temp,即head2.next = temp;

這時使得temp = next;(為什麼要讓temp = next呢?因為這時候temp所代表的結點已經不在head頭結點的那個鍊錶上了,所以只用乙個輔助指標來進行幫助)

使next也向後移動一位

**

//反轉鍊錶

public

void

reverselisted()

//建立乙個煉表頭

node head2 =

newnode()

;//建立兩個指標指向鍊錶

node temp = head.next;

node next = null;

while

(temp!=null)

head.next = head2.next;

}

從尾到頭列印單鏈表

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

從尾到頭列印單鏈表

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