4.4 雙向鏈表[學(xué)習(xí)記錄]
來自https://www.bilibili.com/video/BV1E4411H73v?p=26
寫在前面:本文內(nèi)容大致和原視頻內(nèi)老師的筆記內(nèi)容相同,會(huì)偶爾插入自己的注釋和理解,盡量會(huì)完成作業(yè)
使用帶head頭的雙向鏈表實(shí)現(xiàn)–水滸英雄排行榜>
管理單向鏈表的缺點(diǎn)分析:
1)單向鏈表,查找的方向只能是一個(gè)方向,而雙向鏈表可以向前或者向后查找。
2)單向鏈表不能自我刪除,需要靠輔助節(jié)點(diǎn),而雙向鏈表,則可以自我刪除,所以前面我們單鏈表刪除時(shí)節(jié)點(diǎn),總是找到temp,temp是待刪除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)(認(rèn)真體會(huì)).
分析了雙向鏈表如何完成遍歷,添加,修改,刪除的分析思路

對上圖的說明
分析雙向鏈表的遍歷,添加,修改,刪除的操作思路===》代碼實(shí)現(xiàn)
1)遍歷方和單鏈表一樣,只是可以向前,也可以向后查找
2)添加(默認(rèn)添加到雙向鏈表的最后)
(1)先找到雙向鏈表的最后這個(gè)節(jié)點(diǎn)
(2) temp.next = newHeroNode
(3)newHeroNode.pre=temp;
3)修改思路和原來的單向鏈表一樣.
4)刪除
(1)因?yàn)槭请p向鏈表,因此,我們可以實(shí)現(xiàn)自我刪除某個(gè)節(jié)點(diǎn)
(2)直接找到要?jiǎng)h除的這個(gè)節(jié)點(diǎn),比如temp
(3) temp.pre.next = temp.next
(4) temp.next.pre = temp.pre;
雙向鏈表的代碼實(shí)現(xiàn)
4.4.2課堂作業(yè)和思路提示
雙向鏈表的第二種添加方式,按照編號(hào)順序[示意圖]按照單鏈表的順序添加,稍作修改即可
這題不難,如果你是想來這里找答案的話,我最后勸你一句,試試自己寫,你可以寫出來的
