雙向鏈表圖解 雙向鏈表是非線性結(jié)構(gòu)?
雙向鏈表是非線性結(jié)構(gòu)?不是。它是一個(gè)線性結(jié)構(gòu)。線性結(jié)構(gòu)是指數(shù)據(jù)元素之間具有“一對(duì)一”線性關(guān)系的數(shù)據(jù)結(jié)構(gòu),其中只有一個(gè)根節(jié)點(diǎn),如循環(huán)鏈表和雙向鏈表;非線性結(jié)構(gòu)是指數(shù)據(jù)元素之間具有“一對(duì)多”非線性關(guān)系的數(shù)
雙向鏈表是非線性結(jié)構(gòu)?
不是。它是一個(gè)線性結(jié)構(gòu)。
線性結(jié)構(gòu)是指數(shù)據(jù)元素之間具有“一對(duì)一”線性關(guān)系的數(shù)據(jù)結(jié)構(gòu),其中只有一個(gè)根節(jié)點(diǎn),如循環(huán)鏈表和雙向鏈表;非線性結(jié)構(gòu)是指數(shù)據(jù)元素之間具有“一對(duì)多”非線性關(guān)系的數(shù)據(jù)結(jié)構(gòu),其中可以有一個(gè)根節(jié)點(diǎn),例如樹結(jié)構(gòu),或者多個(gè)根節(jié)點(diǎn),例如網(wǎng)絡(luò)。
單向鏈表和雙向鏈表的區(qū)別?
單向鏈表:?jiǎn)蜗蜴湵戆瑑蓚€(gè)字段,一個(gè)是信息字段,另一個(gè)是指針字段。也就是說,單向鏈表的節(jié)點(diǎn)分為兩部分,一部分是保存或顯示該節(jié)點(diǎn)的信息,第二部分存儲(chǔ)下一個(gè)節(jié)點(diǎn)的地址,最后一個(gè)節(jié)點(diǎn)指向空值。優(yōu)點(diǎn):在單向鏈表中添加和刪除節(jié)點(diǎn)比較簡(jiǎn)單。遍歷時(shí)沒有死循環(huán)。(雙向不會(huì)循環(huán),循環(huán)列表忘記控制,很容易進(jìn)入循環(huán));缺點(diǎn):只能自始至終遍歷。我們只能找到接班人,不能找到先行者,也就是說,我們只能前進(jìn)。雙向鏈表:每個(gè)節(jié)點(diǎn)有2個(gè)鏈接,一個(gè)是前一個(gè)節(jié)點(diǎn)(當(dāng)這個(gè)鏈接是第一個(gè)鏈接時(shí),指向空值或空列表),另一個(gè)是后一個(gè)節(jié)點(diǎn)(當(dāng)這個(gè)鏈接是最后一個(gè)鏈接時(shí),指向空值或空列表)。也就是說,雙向鏈表有兩個(gè)指針,一個(gè)是指向上一個(gè)節(jié)點(diǎn)的指針,另一個(gè)是指向下一個(gè)節(jié)點(diǎn)的指針。優(yōu)點(diǎn):可以找到前驅(qū)和后繼,可以進(jìn)退;缺點(diǎn):添加刪除節(jié)點(diǎn)復(fù)雜。