天天看點

連結清單的C++實作

  有的時候,處于記憶體中的資料并不是連續的。那麼這時候,我們就需要在資料結構中添加一個屬性,這個屬性會記錄下面一個資料的位址。有了這個位址之後,所有的資料就像一條鍊子一樣串起來了,那麼這個位址屬性就起到了穿線連結的作用。

連結清單有:單連結清單,雙連結清單,單循環連結清單,雙循環連結清單。

了解單連結清單,其他幾種也就大同小異。

    相比較普通的線性結構,連結清單結構的優勢是什麼呢?我們可以總結一下:

    (1)單個節點建立非常友善,普通的線性記憶體通常在建立的時候就需要設定資料的大小

    (2)節點的删除非常友善,不需要像線性結構那樣移動剩下的資料

    (3)節點的通路友善,可以通過循環或者遞歸的方法通路到任意資料,但是平均的通路效率低于線性表

    那麼在實際應用中,連結清單是怎麼設計的呢?我們可以以int資料類型作為基礎,設計一個簡單的int連結清單:

運作結果:

連結清單的C++實作

繼續閱讀