使用循環指針和尾指針構建雙向鏈表的優點/缺點是什麼?哪一個更適合建立一個deque?循環雙向鏈表和尾指針雙向鏈表
從我的觀點來看,他們在做所有搜索,插入和刪除節點方面基本相同。唯一不同的是,對於尾指針雙鏈表,您需要將尾指針指向最後一個節點,並且每次在尾部之後插入新節點時都需要更新它。此外,在循環鏈表中,第一個節點鏈接到最後一個節點,反之亦然,而在尾指針中,head-> prev和tail->指向空指針。 我認爲他們都是建立一個deque的greate。這一切都取決於你希望你的程序運行的方式。如果你希望你的程序能夠快速地在頭尾節點之間來回運行,使用循環方式,否則尾指針應該足夠。
這是我對這個問題的回答。由於我還沒有建立任何循環雙向鏈表,我沒有任何關於它在機器上運行的經驗,但我懷疑它會像尾指針一樣快。任何建議?並感謝大家的投入。
什麼是算法之前和頭部的圓形雙重鏈接後插入節點列表?他們不一樣嗎?因爲在一個循環鏈表中,你根本沒有跟蹤尾部,最後一個節點可以連接到第一個節點,反之亦然> –
在任何地方插入節點的算法都是一樣的,你需要一個'prev'參數後插入。首先插入,你通過'頭'。要插入最後一個,你傳遞'head.prev'。插入函數必須更新前一個的'next'指針,下一個'prev'指針,並設置插入節點的next/prev指針。任務完成。 –
非常感謝你! –