(一)順序存儲結構和鏈式存儲結構的優缺點比較,以及使用情況。
1 優缺點
① 順序存儲時,相鄰數據元素的存放地址也相鄰(邏輯與物理統一);要求內存中可用存儲單元的地址必須是連續的。
優點:存儲密度大(=1),存儲空間利用率高。缺點:插入或刪除元素時不方便。
②鏈式存儲時,相鄰數據元素可隨意存放,但所占存儲空間分兩部分,一部分存放結點值,另一部分存放表示結點間關系的指針
優點:插入或刪除元素時很方便,使用靈活。缺點:存儲密度小(<1),存儲空間利用率低。
2 使用情況
順序表適宜于做查找這樣的靜態操作;鏈表宜于做插入、刪除這樣的動態操作。
若線性表的長度變化不大,且其主要操作是查找,則采用順序表;
若線性表的長度變化較大,且其主要操作是插入、刪除操作,則采用鏈表。
3 比較
順序表與鏈表的比較
基于空間的比較
存儲分配的方式
順序表的存儲空間是靜態分配的
鏈表的存儲空間是動態分配的
存儲密度 = 結點數據本身所占的存儲量/結點結構所占的存儲總量
順序表的存儲密度 = 1
鏈表的存儲密度 < 1
?
基于時間的比較
存取方式
順序表可以隨機存取,也可以順序存取
鏈表是順序存取的
插入/刪除時移動元素個數
順序表平均需要移動近一半元素
鏈表不需要移動元素,只需要修改指針