服務(wù)熱線
前言有些朋友說他們還沒有研究數(shù)據(jù)結(jié)構(gòu),對(duì)鏈表沒有特殊的了解,因此今天我們將對(duì)鏈表進(jìn)行系統(tǒng)的總結(jié)。
另外,如果您想改善算法思維,我建議您仍然需要系統(tǒng)地學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)。
的。
閱讀本文之后,您將獲得以下收益:1.知道什么是鏈表? 2.了解幾種類型的鏈表。
3.了解鏈表的構(gòu)造方式。
4.鏈表的存儲(chǔ)方法5.如何遍歷鏈表6.了解鏈表的操作。
7.了解鏈接列表和數(shù)組之間的區(qū)別。
8.掌握鏈表的經(jīng)典問題。
鏈表的定義:定義:鏈表是一種遞歸數(shù)據(jù)結(jié)構(gòu)。
它為空(空)或?qū)Πㄓ迷睾椭赶蛄硪粋€(gè)鏈表引用的點(diǎn)的節(jié)點(diǎn)(節(jié)點(diǎn))的引用。
讓我們來解釋一下。
鏈表是一種常見的基本數(shù)據(jù)結(jié)構(gòu)。
它是一個(gè)線性列表,但不是按線性順序訪問數(shù)據(jù),而是存儲(chǔ)每個(gè)節(jié)點(diǎn)中下一個(gè)節(jié)點(diǎn)的地址。
我們還可以理解,鏈表是由指針連接的線性結(jié)構(gòu)。
每個(gè)鏈表節(jié)點(diǎn)由兩部分組成:數(shù)據(jù)域和指針域,鏈表的最后一個(gè)節(jié)點(diǎn)指向空。
這就是我們所說的空指針。
幾種類型的鏈表首先讓我們看一下鏈表的視覺表示,以便更好地理解它們。
使用矩形表示對(duì)象。
將實(shí)例變量的值寫在矩形中;使用指向參考對(duì)象的箭頭表示參考關(guān)系。
單鏈列表單鏈列表包含兩個(gè)值:當(dāng)前節(jié)點(diǎn)的值和到下一個(gè)節(jié)點(diǎn)的鏈接。
如圖所示,我們使用上面提到的可視化表示方法來可視化單個(gè)鏈接列表。
雙鏈列表如上所述,單鏈列表的節(jié)點(diǎn)只能指向該節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)。
雙鏈列表具有三個(gè)整數(shù)值:數(shù)值,后向節(jié)點(diǎn)鏈接和前向節(jié)點(diǎn)鏈接,因此可以向前或向后查詢雙鏈列表。
另一個(gè)常用的鏈表是圓形單鏈表,單鏈表末尾的指針指向頭節(jié)點(diǎn)。
例如,在leetcode61旋轉(zhuǎn)鏈表中,我們首先將鏈表關(guān)閉成一個(gè)環(huán),找到一個(gè)新的打開位置,然后定義一個(gè)新的頁眉和頁腳。
構(gòu)造鏈接列表Java是一種面向?qū)ο蟮恼Z言,很容易實(shí)現(xiàn)鏈接列表。
我們首先使用一個(gè)嵌套類來定義節(jié)點(diǎn)的抽象數(shù)據(jù)類型private& nbsp; class& nbsp; Item& nbsp; item;& nbsp;& nbsp; Node& ; nbsp; next;}現(xiàn)在,我們需要構(gòu)造一個(gè)包含一個(gè),兩個(gè),三個(gè)的鏈表,我們首先為每個(gè)元素創(chuàng)建一個(gè)節(jié)點(diǎn)。
節(jié)點(diǎn)第二節(jié)點(diǎn)=新建節(jié)點(diǎn)();節(jié)點(diǎn)第三節(jié)點(diǎn)=新建節(jié)點(diǎn)();將首先將每個(gè)節(jié)點(diǎn)的項(xiàng)目字段設(shè)置為期望值。
然后我們將下一個(gè)字段設(shè)置為首先構(gòu)造鏈接列表。
注意:此時(shí),三分之一的下一個(gè)仍然為空,這是初始化值。
鏈表的存儲(chǔ)方法我們知道如何構(gòu)造鏈表,讓我們來談?wù)勬湵淼拇鎯?chǔ)方法。
我們都知道數(shù)組在內(nèi)存中是連續(xù)分布的,但是鏈表在內(nèi)存中不是連續(xù)分布的。
鏈接列表通過指針域的指針鏈接存儲(chǔ)器中的每個(gè)節(jié)點(diǎn)。
因此,鏈表分散在內(nèi)存中某個(gè)地址的內(nèi)存中,并且分配機(jī)制取決于操作系統(tǒng)的內(nèi)存管理。
我們可以根據(jù)下圖了解它。
要遍歷鏈表,我們通常使用while循環(huán)(也可以進(jìn)行for循環(huán),但代碼不夠簡潔)。
讓我們來看一下鏈表的遍歷代碼:for(Node& nbsp; x& nbsp; =& nbsp; first; x!= null; x = x .next){& nbsp;& nbsp;& nbsp;& nbsp;& nbsp; //處理x.item},同時(shí):Node& nbsp; x& nbsp; =& nbsp; first; while(x!= null){& nbsp; //處理x.item& nbsp;& nbsp; x = x.next;}鏈表的幾個(gè)操作添加節(jié)點(diǎn)以添加節(jié)點(diǎn)E,刪除節(jié)點(diǎn)如圖所示,刪除節(jié)點(diǎn)B,如圖所示,我們只需要將節(jié)點(diǎn)A的下一個(gè)指針指向節(jié)點(diǎn)C。
有些學(xué)生可能會(huì)遇到這種問題。
B節(jié)點(diǎn)會(huì)不會(huì)像這樣將其保留在內(nèi)存中嗎? Java具有自己的內(nèi)存恢復(fù)機(jī)制,因此您不需要手動(dòng)釋放內(nèi)存,但是對(duì)于C ++,則需要手動(dòng)釋放內(nèi)存。
【】 標(biāo)準(zhǔn)整流器工作原理及應(yīng)用領(lǐng)域
【】 高效能整流器SBRT的應(yīng)用與優(yōu)勢
【】 AC-DC主動(dòng)式整流器工作原理及應(yīng)用領(lǐng)域
【】 車用SBR與SBRT整流器的區(qū)別和應(yīng)用
【】 晶圓電阻的應(yīng)用領(lǐng)域及主要特性詳解
【】 技術(shù)參數(shù)詳解與設(shè)備性能分析
【】 與其他品牌相比,德國系統(tǒng)品牌在市場上的表現(xiàn)如何?
【】 61F-GP-N型電極式液位開關(guān)的特性與應(yīng)用
【】 電容物位開關(guān)的應(yīng)用與特點(diǎn)
【】 WFS--H液體水流開關(guān):特性與應(yīng)用
【】 YAMATAKE HPQ-T1: 高性能液位開關(guān)的應(yīng)用與特點(diǎn)
【】 A-B限位開關(guān)802T-X4A:性能特點(diǎn)與應(yīng)用
【】 GN30-12D/630A戶內(nèi)高壓隔離開關(guān):性能特點(diǎn)與應(yīng)用
【】 熔斷式隔離器HG1-63/30的特點(diǎn)與應(yīng)用
無人機(jī)的發(fā)展日新月異,但也存在潛在的安全隱患
AMD Ripper PRO系列和技嘉WRX80 SU8的參數(shù)比較
電磁繼電器的技術(shù)參數(shù)是什么?如何選擇合適的電磁繼電器?
您了解半導(dǎo)體材料的特征參數(shù)嗎?看看什么是半導(dǎo)體雜質(zhì)!
您知道頻繁快速充電對(duì)當(dāng)前鋰離子電池的影響嗎?
什么是光電編碼器?您知道光電編碼器的5個(gè)主要類別嗎?
如何判斷電涌保護(hù)器的質(zhì)量?電涌保護(hù)器的特性和選擇原則簡介
韓國向5G網(wǎng)絡(luò)設(shè)備供應(yīng)商注資525億韓元
最具成本效益的耳機(jī)品牌排名,適合學(xué)生聚會(huì)的高性價(jià)比藍(lán)牙耳機(jī)
VFineMusic加入華為HMS全球生態(tài)聯(lián)盟
將SMT貼片機(jī)放在板上時(shí)需要注意的事項(xiàng)
介紹節(jié)氣門執(zhí)行器的組件及其容易損壞的組件
歡迎與我們交流!
聯(lián)系我們
Copyright ? 2025 版權(quán)所有