順序表 鏈表

?存儲分配方式、時間性能、空間性能

?順序表與鏈表的比較

?空間比較、時間比較、語言比較

存儲分配方式比較

?順序表采用順序存儲結構,即用一段地址連續的存儲單元依次存儲線性表的數據元素,數據元素之間的邏輯關系通過存儲位置來實現。

?單鏈表采用鏈接存儲結構,即用一組任意的存儲單元存放線性表的元素。用指針來反映數據元素之間的邏輯關系。

時間性能比較

時間性能是指實現基于某種存儲結構的基本操作(即算法)的時間復雜度。

按位查找:

?順序表的時間為(1),是隨機存??;

?單鏈表的時間為(n),是順序存取。

插入和刪除:

?順序表需移動表長一半的元素,時間為(n);

?單鏈表不需要移動元素,在給出某個合適位置的指針后,插入和刪除操作所需的時間僅為(1)。

空間性能比較

空間性能是指某種存儲結構所占用的存儲空間的大小。

定義結點的存儲密度:

存儲密度=數據域占用的存儲量/整個結點占用的存儲量

結點的存儲密度:

?順序表中每個結點的存儲密度為1(只存儲數據元素),

?單鏈表的每個結點的存儲密度<1(包括數據域和指針域),有指針的結構性開銷。

整體結構:

?順序表需要預分配存儲空間,如果預分配得過大,造成浪費,若估計得過小,又將發生上溢;

?單鏈表不需要預分配空間,只要有內存空間可以分配,單鏈表中的元素個數就沒有限制。

?空間比較:

(1) 順序表空間靜態分配;鏈表空間動態分配

(2)順序表的存儲密度 = 1;鏈表的存儲密度 < 1。

?時間比較:

(1)順序表可隨機存取,也可順序存?。绘湵碇荒茼樞虼嫒?/b>

(2)插入/刪除時,順序表平均移動一半左右元素;鏈表不需移動元素,只修改指針。若插入/刪除僅在表的兩端,宜采用帶尾指針的循環鏈表。

?語言比較:

順序表實現簡單:數組;動態鏈表:指針;靜態鏈表:數組

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容