(二)鏈表

線性鏈表

特點(diǎn):用一組任意的存儲(chǔ)單元儲(chǔ)蓄線性表的元素(不一定連續(xù))。
節(jié)點(diǎn):線性鏈表由除了存儲(chǔ)本身的信息,還需要存儲(chǔ)一個(gè)指示后繼的信息,這兩部分組成數(shù)據(jù)元素的存儲(chǔ)映像,稱為節(jié)點(diǎn)。

節(jié)點(diǎn)包括兩個(gè)域:存儲(chǔ)數(shù)據(jù)元素信息的域?yàn)?strong>數(shù)據(jù)域;存儲(chǔ)直接后繼的存儲(chǔ)位置的域叫做指針域。指針域中存儲(chǔ)的信息稱作指針或鏈,多個(gè)節(jié)點(diǎn)鏈成為一個(gè)鏈表。

由于此鏈表的每個(gè)節(jié)點(diǎn)中只包含一個(gè)指針域,故又稱為線性鏈表單鏈表。

  • 鏈表的存取必須從頭指針開始,頭指針指示鏈表中第一個(gè)節(jié)點(diǎn)存儲(chǔ)的位置。同時(shí),由于最后一個(gè)數(shù)據(jù)元素沒有直接的后繼,則線性鏈表最后一個(gè)幾點(diǎn)指針為“空”(NULL)。
  • 有時(shí),我們?cè)趩捂湵淼牡谝粋€(gè)節(jié)點(diǎn)之前附設(shè)一個(gè)節(jié)點(diǎn),稱為頭結(jié)點(diǎn)。

    頭結(jié)點(diǎn)的數(shù)據(jù)域可以不存儲(chǔ)任何信息,也可以存儲(chǔ)線性表的長度等類的附加信息,頭結(jié)點(diǎn)指針域存儲(chǔ)指向第一個(gè)節(jié)點(diǎn)的指針,若線性表為空表,則頭結(jié)點(diǎn)的指針域?yàn)椤翱铡薄?/p>

  • 單鏈表是一種動(dòng)態(tài)結(jié)構(gòu),整個(gè)可用存儲(chǔ)空間可為多個(gè)鏈表共同享用,每個(gè)鏈表占用的空間不需要預(yù)先分配,而是可以由系統(tǒng)應(yīng)需求即使生成。因此,簡歷線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的過程就是一個(gè)動(dòng)態(tài)生成鏈表的過程。
循環(huán)鏈表

特點(diǎn):表中最后一個(gè)節(jié)點(diǎn)的指針域指向頭結(jié)點(diǎn),整個(gè)鏈表形成一個(gè)環(huán)。

循環(huán)鏈表操作和線性鏈表基本一致,差別僅在于算法中判斷最后一個(gè)節(jié)點(diǎn)指針域指向不是空,而是指向頭指針。

雙向鏈表

特點(diǎn):雙向鏈表的節(jié)點(diǎn)中有兩個(gè)指針域,其一指向直接的后繼,另一指向直接的前驅(qū)。

背景:單鏈表結(jié)果中節(jié)點(diǎn)只有一個(gè)指針指向后繼,查找節(jié)點(diǎn)每次只能順指針往后尋找,若要尋查節(jié)點(diǎn)的直接前驅(qū),需要從表頭指針出發(fā),為了克服單鏈表的缺點(diǎn),衍生雙向鏈表。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容