2 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
沒有錯(cuò)啊,雙向鏈表是一條線,線的每兩個(gè)挨著的節(jié)點(diǎn)互相連接的,就是說第一個(gè)節(jié)點(diǎn)指向第二個(gè),第二個(gè)節(jié)點(diǎn)指向第一個(gè)和第三個(gè),第三個(gè)節(jié)點(diǎn)指向第二個(gè)和第四個(gè)... 倒數(shù)第一個(gè)節(jié)點(diǎn)指向倒數(shù)第二個(gè)和第一個(gè)。
而循環(huán)鏈表是每兩個(gè)挨著的節(jié)點(diǎn)只有前一個(gè)指向后一個(gè),并不是互相連接的,也就是說第一個(gè)節(jié)點(diǎn)指向第二個(gè),第二個(gè)節(jié)點(diǎn)指向第三個(gè),第三個(gè)節(jié)點(diǎn)指向第四個(gè)... 倒是第一個(gè)節(jié)點(diǎn)只指向第一個(gè)。
這樣下來,如果有n個(gè)節(jié)點(diǎn),雙向鏈表的連接數(shù)是2(n-1),循環(huán)鏈表的連接數(shù)是n。

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
英文原文是這樣的:
The reason you might want to create a circularly linked list is if you want the ability to go backward through a list but don’t want the extra overhead of creating a doubly linked list. You can move backward through a circularly linked list by moving forward through the end of the list to the node you are trying to reach.
個(gè)人認(rèn)為此處中文翻譯可能不太合適。
總之就是說循環(huán)鏈表最后一個(gè)節(jié)點(diǎn)的后繼節(jié)點(diǎn)是第一個(gè)節(jié)點(diǎn),從最后一個(gè)節(jié)點(diǎn)再往后移動(dòng),就到了第一個(gè)節(jié)點(diǎn),可以重新遍歷一次找到你要的節(jié)點(diǎn)的意思。
我自己的渣翻,改自谷歌翻譯:
您可能想要?jiǎng)?chuàng)建循環(huán)鏈表的原因是:您希望向前訪問鏈表,但不希望負(fù)擔(dān)創(chuàng)建雙向鏈表的額外開銷。您可以在循環(huán)鏈表中向后移動(dòng)直到超過最后一個(gè)節(jié)點(diǎn)(然后繼續(xù)向后移動(dòng))來找到你需要達(dá)到的節(jié)點(diǎn)。
- 2 回答
- 0 關(guān)注
- 728 瀏覽
添加回答
舉報(bào)