資料結構與演算法 鍊錶

2022-09-04 00:15:16 字數 1312 閱讀 7259

鍊錶

鍊錶是面試時被提及最頻繁的資料結構。鍊錶就是通過指標將乙個個節點連線起來。鍊錶是非連續的動態記憶體空間,鍊錶的查詢比陣列慢,但是新增和刪除比陣列快。

鍊錶宣告

1

public

class

listnode

8 }

鍊錶的新增

1

public

void insertlist(listnode head, int

val) else

10 p.next =tempnode;11}

12 }

鍊錶的刪除

1

public

void deletelistnode(listnode head, int

val) else

11if (p.next !=null

) 14

}15 }

從尾到頭列印鍊錶

方法1:使用棧結構

1

public

void

printlist1(listnode head)

9while (!stack.isempty())

13 }

方法2:遞迴

1

public

void

printlist2 (listnode head)

6 system.out.print(head.val+" ");7}

8 }

注:遞迴的過程相當於棧。

反轉單鏈表

1

public

listnode reverselist (listnode head)

10return

pre;

11 }

反轉雙鏈表

1

public

class

doublenode 8}

9public

node reverselist(node head)

20return pre;//

返回新頭節點

21 }

學習資料結構與演算法的記錄和整理,如有錯誤或意見請幫忙指出,以後會持續更新。。。。

資料結構與演算法 鍊錶

題目 合併兩個已經排序好的鍊錶 非遞迴和遞迴兩種 方法1 cpp view plain copy print color 000000 合併鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std struct listnod...

資料結構與演算法 鍊錶

在講述鍊錶之前讓我們對資料結構進行乙個簡單的回顧 我們知道,資料結構指的是描述實際問題中各個資料項節點之間的前後邏輯結構關係,即要麼是線性結構 即某一資料項的前繼節點和後繼節點有且只有乙個 要麼是非線性結構 即某一資料節點的前驅或者後繼節點不止乙個 在確定了實際資料項的資料結構之後,我們要採用某種儲...

資料結構與演算法 鍊錶

反轉鍊錶 def reverse head q none p heap while p temp p.next p.next q q pp temp return p判斷鍊錶環 def meetingnode head if not head return slow head fast head.n...