通常從空間性能和時間性能兩個方面比較分析:
1.空間性能的比較
線性表長度變化大,難以預估存儲規模,用鏈表
線性表長度變化不大,能事先確定存儲大小,用順序表
a.存儲空間的分配
順序表的存儲空間必須預先分配,元素個數擴充受限,易造成存儲空間浪費或空間溢出現象;
鏈表無需預先分配空間,內存空間允許時,元素個數無限制。
b.存儲密度的大小
不考慮順序表中的空閑區,順序表存儲空間利用率為100%,存儲密度為1;
鏈表存儲空間利用率小於100%,存儲密度小於1,單鏈表存儲密度為0.5。
長度變化不大,且事先確定存儲大小,采用順序表可節約存儲空間。
2.時間性能的比較
很少查找,頻繁插入或刪除,用鏈表
頻繁查找,很少插入或刪除,用順序表
a.存取元素的效率
順序表是由數組實現的隨機存取結構,根據位置序號實現取值操作,效率高 時間復雜度O(1);
鏈表是順序存取結構,從表頭開始依次向后遍歷鏈表,取值效率底 時間復雜度O(n)。
b.插入和刪除操作的效率
鏈表插入或刪除無需移動數據,只修改指針,時間復雜度為O(1);
順序表插入或刪除時,平均要移動表中近一半的結點,時間復雜度為O(n)。