C 雙向鍊錶

2021-07-26 16:21:59 字數 328 閱讀 7949

考慮順序表中總是可以很方便地找到表元素的前驅和後繼,但單鏈表只能找後繼。如要找前驅,必須從表頭開始搜尋。為了克服這一缺點,可採用雙向鍊錶(double linked list)。

雙向鍊錶經常採用帶頭結點的迴圈鍊錶方式,如下圖所示。(檢視動畫演示)

圖7.10 帶表頭結點的雙向迴圈鍊錶

假設:指標p指向雙向迴圈鍊錶的某乙個結點,那麼,p->llink指示p所指結點的前驅結點,p->rlink指示後繼結點。p->llink->rlink指示本結點的前驅結點的後繼結點,即本結點,間接訪問符->可以連續使用。(檢視動畫演示)

具體參見【例7.7】雙向鍊錶類模板和結點類模板。(檢視原始碼)

C 雙向鍊錶

部落格介紹了c語言,以及c 的單向鍊錶。那麼我們今天介紹的雙向鍊錶,顧名思義,就是資料本身具備了左邊和右邊的雙向指標。雙向煉表相比較單向鍊錶,主要有下面幾個特點 1 在資料結構中具有雙向指標 2 插入資料的時候需要考慮前後的方向的操作 3 同樣,刪除資料的是有也需要考慮前後方向的操作 那麼,乙個非迴...

C 雙向鍊錶

includeusing namespace std typedef int datatype class linknode friend class slist private datatype data linknode prev linknode next class slist void p...

c 雙向鍊錶

雙向鍊錶的遍歷,新增 修改 刪除的操作思路 1 先找到雙向鍊錶的最後這個節點 2 temp.next new datanode 3 newdatanode.pre temp 1 因為是雙向鍊錶,因此,我們可以實現自我刪除某個節點 2 直接找到要刪除的這個節點,比如temp 3 temp.pre.ne...