天天看點

順序表和連結清單的差別

首先了解順序表和連結清單的概念

1.順序表

順序表是在計算機記憶體中以的形式儲存的線性表,是指用一組位址連續的依次存儲的線性結構。

線性表采用順序存儲的方式存儲就稱之為順序表。順序表是将表中的結點依次存放在計算機記憶體中一組位址連續的中。

特點:

(1)在順序表中,各個表項的邏輯順序與其存儲的實體順序一緻,即第

i 個表項存儲于第 i 個實體位置(1 < i < n)

(2)對順序表中的所有表項,即可以進行順序的通路,也可以随機的通路,也就是說,既可以從表的第一個表項開始逐個通路表項

也可以按照表項的序号(下标)直接的通路。

(3)無需為表示結點間的邏輯關系而增加額外的存儲空間,存儲使用率提高。

(4)可以友善的存儲表中的任一結點,存儲速度快。

2.連結清單

連結清單是一種實體上非連續、非順序的,的邏輯順序是通過連結清單中的連結次序實作的。連結清單由一系列結點(連結清單中每一個元素稱為結點)組成,結點可以在運作時動态生成。每個結點包括兩個部分:一個是存儲的資料域,另一個是存儲下一個結點位址的域。 相比于,操作複雜。

特點:

(1)可以友善的進行擴充。

(2)可以友善的删除和插入。

由于順序表:

1)在表中插入新元素或删除無用元素時,為了保持其他元素的相對次序不變,平均需要移動一半元素,運作效率低

2)由于順序表要求占用連續的空間,如果預先進性存儲配置設定。則當表長度變化較大時,難以确定合适的存儲空間帶大小,若

按可能達到的最大的長度預先配置設定表的空間,則容易造成一部分空間長期的限制而得不到充分的利用,若事先對表中的空間估計不足

則插入操作可能是表長超過預先的記憶體而造成記憶體溢出,但如果采用指針的方式定義數組,在程式運作時動态的配置設定記憶體,一旦需要

就可以配置設定他,這樣可以擴充記憶體,但是是時間開銷比較大

是以這就可以采用連結清單很好的解決。