首先了解順序表和煉表的概念
1.順序表
順序表是在計算機記憶體中以陣列
的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。
線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。
特點:(1)在順序表中,各個表項的邏輯順序與其儲存的物理順序一致,即第 i 個表項儲存於第 i 個物理位置(1 < i < n)
(2)對順序表中的所有表項,即可以進行順序的訪問,也可以隨機的訪問,也就是說,既可以從表的第乙個表項開始逐個訪問表項
也可以按照表項的序號(下標)直接的訪問。
(3)無需為表示結點間的邏輯關係而增加額外的儲存空間,儲存利用率提高。
(4)可以方便的儲存表中的任一結點,儲存速度快。
2.鍊錶
鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。 相比於線性表
順序結構,操作複雜。
特點:(1)可以方便的進行擴充。
(2)可以方便的刪除和插入。
由於順序表:
1)在表中插入新元素或刪除無用元素時,為了保持其他元素的相對次序不變,平均需要移動一半元素,執行效率低
2)由於順序表要求占用連續的空間,如果預先進性儲存分配。則當表長度變化較大時,難以確定合適的儲存空間帶大小,若
按可能達到的最大的長度預先分配表的空間,則容易造成一部分空間長期的限制而得不到充分的利用,若事先對錶中的空間估計不足
則插入操作可能是表長超過預先的記憶體而造成記憶體溢位,但如果採用指標的方式定義陣列,在程式執行時動態的分配記憶體,一旦需要
就可以分配他,這樣可以擴充記憶體,但是是時間開銷比較大
因此這就可以採用鍊錶很好的解決。
python列表和鍊錶的區別 順序表和煉表的區別
一 從操作上角度 順序表和煉表都具有增 刪 查 改的相同功能,但演算法複雜度卻不相同。1 增 順序表往指定位置,不覆蓋的新增乙個值,後面的值日要往後移動,演算法複雜度為o n 鍊錶往指定位置新增乙個節點,需要從表頭遍歷到指定位置,演算法複雜度為o n 如果帶有索引的節點,演算法複雜度為o 1 2 刪...
關於順序表和煉表的區別總結
一.概念 通過一段連續的實體地址儲存資料元素的線性結構,通常用陣列進行儲存 二.時間複雜度 在尾插 尾刪時,時間複雜度為o 1 在中間或前面進行插入刪除時,時間複雜度為o n 三.底層空間 順序表的底層空間是連續的,相當於陣列儲存 四.順序表支援隨機訪問 五.順序表可能需要擴容 順序表在儲存元素的時...
順序表與鍊錶的區別
原理 順序表儲存是將資料元素放到一塊連續的記憶體儲存空間,相鄰資料元素的存放位址也相鄰 邏輯與物理統一 優點 1 空間利用率高。區域性性原理,連續存放,命中率高 2 訪問速度高效,通過下標來直接儲存。缺點 1 插入和刪除比較慢,比如 插入或者刪除乙個元素時,整個表需要遍歷移動元素來重新排一次順序。2...