資料結構與演算法(03)

2021-10-25 02:20:26 字數 737 閱讀 8572

1.雙鏈表應用例項

1.1雙向鍊錶的操作分析和實現

使用帶head頭的雙向鍊錶實現

管理單向鍊錶的缺點分析:

1)單向鍊錶,查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢。

2)單向鍊錶不能自我刪除,需要靠輔助節點,而雙向鍊錶可以自我刪除,單鏈表刪除時節點,總是找到temp,temp是刪除節點的前乙個節點

3)雙向鍊錶如何完成遍歷,新增,修改和刪除。

對上圖的說明:

1)遍歷:和單鏈表一樣,只是可以向前,也可以向後查詢

2)新增(預設新增到雙向鍊錶的最後)

(1)先找到雙向鍊錶的最後這個節點

(2)temp.next=newheronode

(3)newheronode.pre=temp;

3)修改 思路和單向鍊錶一樣

4)刪除

(1)因為是雙向鍊錶,因此,可以實現自我刪除某個節點

(2)直接找到要刪除的這個節點,比如temp

資料結構 演算法 03

1.棧結構實現 棧可以用順序表實現,也可以用鍊錶實現。棧的操作 stack 建立乙個新的空棧 push item 新增乙個新的元素item到棧頂 pop 彈出棧頂元素 peek 返回棧頂元素 is empty 判斷棧是否為空 size 返回棧的元素個數 2.佇列 佇列 queue 是只允許在一端進行...

資料結構與演算法03 單鏈表

使用帶頭節點的單向鍊錶,實現水滸英雄排行榜的管理。對英雄人物完成增刪改查等操作。package com.wang.linkedlist author wzy create 2020 02 03 12 35 public class linkedlist 定義singlelinkedlist clas...

資料結構與演算法03 約瑟夫問題

約瑟夫問題 39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓。於是決定了自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺。然後下乙個重新報數,直到所有人都自殺身亡為止。然而josephus 和他的朋友並不想遵從,joseph...