?存儲分配方式、時間性能、空間性能 ?順序表與鏈表的比較 ?空間比較、時間比較、語言比較 存儲分配方式比較?順序表采用順序存儲結構,即用一段地址連續的存儲單元依次存儲線性表的數據元素,數據元素之間的邏輯關系通過存儲位置來實現。 ?單鏈表采用鏈接存儲結構,即用一組任意的存儲單元存放線性表的元素。用指針來反映數據元素之間的邏輯關系。 時間性能比較時間性能是指實現基于某種存儲結構的基本操作(即算法)的時間復雜度。按位查找:?順序表的時間為O(1),是隨機存??; ?單鏈表的時間為O(n),是順序存取。 插入和刪除:?順序表需移動表長一半的元素,時間為O(n); ?單鏈表不需要移動元素,在給出某個合適位置的指針后,插入和刪除操作所需的時間僅為O(1)。 空間性能比較空間性能是指某種存儲結構所占用的存儲空間的大小。定義結點的存儲密度:存儲密度=數據域占用的存儲量/整個結點占用的存儲量結點的存儲密度:?順序表中每個結點的存儲密度為1(只存儲數據元素), ?單鏈表的每個結點的存儲密度<1(包括數據域和指針域),有指針的結構性開銷。 整體結構:?順序表需要預分配存儲空間,如果預分配得過大,造成浪費,若估計得過小,又將發生上溢; ?單鏈表不需要預分配空間,只要有內存空間可以分配,單鏈表中的元素個數就沒有限制。 ?空間比較: (1) 順序表空間靜態分配;鏈表空間動態分配(2)順序表的存儲密度 = 1;鏈表的存儲密度 < 1。?時間比較: (1)順序表可隨機存取,也可順序存?。绘湵碇荒茼樞虼嫒?/b>(2)插入/刪除時,順序表平均移動一半左右元素;鏈表不需移動元素,只修改指針。若插入/刪除僅在表的兩端,宜采用帶尾指針的循環鏈表。?語言比較: 順序表實現簡單:數組;動態鏈表:指針;靜態鏈表:數組