資料結構的儲存方式只有兩種:陣列(順序儲存)和鍊錶(鏈式儲存)
佇列、棧既這兩種資料結構可以使用陣列實現也可以使用鍊錶實現。
樹用陣列實現就是堆,因為堆是乙個完全二叉樹,用陣列儲存不需要指標,
操作也比較簡單;用鍊錶實現就是很常見的那種樹,因為不一定是完全二叉樹,所以不適用陣列儲存。
為此,在這種鍊錶樹結構上面又衍生出紅黑樹、區間樹、b樹等等,來用於不同場景。
小結:陣列和鍊錶亦是結構的基礎,而其他的那些堆、棧、樹、圖、雜湊表、集合等等各種資料結構則屬於上層結構,基於基礎結構擴充套件出來的多樣化資料結構。
陣列由於是緊湊連續儲存,可以隨機訪問,通過索引可以快速查詢到對應元素,而且相對節約儲存空間。但正因為連續儲存,記憶體空間必須一次性分配夠,所以說如果陣列需要擴容,需要重新分配一塊更大的空間,再把資料全部複製過去,時間複雜度o(n);而且如果你想在陣列中間進行插入和刪除,每次必須搬移後面的所有資料以保持連續,時間複雜度o(n)。
鍊錶因為元素不連續,而是靠指標指向下乙個元素位置,所以不存在陣列的擴容問題;如果知道某一元素的前驅和後驅,操作指標即可刪除該元素或者插入新元素,時間複雜度o(1)。但正因為儲存空間不連續,你無法根據乙個索引算出對應元素指標,會消耗相對更多的儲存空間。,同時查詢效率相比陣列也是差一些。
各自的優缺點
陣列的優點
隨機訪問性強
查詢速度快
陣列的缺點
插入和刪除效率低
可能浪費記憶體
記憶體空間要求高,必須有足夠的連續記憶體空間。
陣列大小固定,不能動態拓展
鍊錶的優點
插入刪除速度快
記憶體利用率高,不會浪費記憶體
大小沒有固定,拓展很靈活。
鍊錶的缺點
不能隨機查詢,必須從第乙個開始遍歷,查詢效率低
基礎篇 資料結構
是一種由節點組成的線性資料集合,每個節點通過指標指向下乙個節點。由節點組成,並能用於表示序列的資料結構。迴圈鍊錶 每個節點指向下個節點,最後乙個節點指向頭結點。排序 類別 排序方法 平均時間複雜度 穩定性 插入 排序 直接插入 o n2 穩定希爾排序 o n1.3 不穩定 選擇 排序 直接選擇 o ...
資料結構物理儲存方式
1 順序儲存方式 bai順序儲存方式就是在一塊連續的儲存區域乙個接著乙個的存放資料,把邏輯上相連的結點儲存在物理位置上相鄰的儲存單元裡,結點間的邏輯關係由儲存單元的鄰接掛安息來體現。順序儲存方式也稱為順序儲存結構,一般採用陣列或者結構陣列來描述。2 鏈結儲存方法 它比較靈活,其不要求邏輯上相鄰的結點...
資料結構的幾種儲存方式
資料的儲存結構是資料結構的乙個重要內容。在計算機中,資料的儲存結構可以採取如下四中方法來表現。1 順序儲存方式 簡單的說,順序儲存方式就是在一塊連續的儲存區域 乙個接著乙個的存放資料。順序儲存方式把邏輯上相連的結點儲存在物理位置上相鄰的儲存單元裡,結點間的邏輯關係由儲存單元的鄰接掛安息來體現。順序儲...