雙向循環(huán)鏈表的示意圖 雙向鏈表是非線性結(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ò)。
在雙向鏈表存儲(chǔ)結(jié)構(gòu)中?
在實(shí)際的軟件開發(fā)中,從鏈表中刪除一個(gè)數(shù)據(jù)只不過是這兩種情況:
對(duì)于雙向鏈表,雙向鏈表中的節(jié)點(diǎn)保存了前體節(jié)點(diǎn)的指針,所以刪除時(shí)不需要像單鏈表那樣遍歷。因此,對(duì)于第二種情況,單鏈表刪除操作需要o(n)時(shí)間復(fù)雜度,而雙向鏈表只需要o(1)時(shí)間復(fù)雜度。因?yàn)閱蜗蜴湵肀仨氃俅伪闅v,找到前導(dǎo)節(jié)點(diǎn),然后刪除它,所以它是o(n)