(一)順序儲存結構和鏈式儲存結構的優缺點
比較,以及使用情況。
1 優缺點
① 順序儲存時,相鄰資料元素的存放位址也相鄰(邏輯與物理統一);要求記憶體中可用儲存單元的位址必須是連續的。
優點:儲存密度大(=1),儲存空間利用率高。缺點:插入或刪除元素時不方便。 ②
鏈式儲存時,相鄰資料元素可隨意存放,但所佔儲存空間分兩部分,一部分存放結點值,另一部分存放表示結點間關係的指標
優點:插入或刪除元素時很方便,使用靈活。缺點:儲存密度小(<1),儲存空間利用率低。
2 使用情況
順序表適宜於做查詢這樣的靜態操作;鍊錶宜於做插入、刪除這樣的動態操作。
若線性表的長度變化不大,且其主要操作是查詢,則採用順序表;
若線性表的長度變化較大,且其主要操作是插入、刪除操作,則採用鍊錶。
3 比較
順序表與鍊錶的比較
基於空間的比較
儲存分配的方式
順序表的儲存空間是靜態分配的
鍊錶的儲存空間是動態分配的
儲存密度 = 結點資料本身所佔的儲存量/結點結構所佔的儲存總量
順序表的儲存密度 = 1
鍊錶的儲存密度 < 1
基於時間的比較
訪問方式
順序表可以隨機訪問,也可以順序訪問
鍊錶是順序訪問的
插入/刪除時移動元素個數
順序表平均需要移動近一半元素
鍊錶不需要移動元素,只需要修改指標
佇列的順序儲存結構和鏈式儲存結構
佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表 在隊尾進行插入操作,在對頭進行刪除操作 與棧相反,佇列是一種 先進先出 first in first out,fifo 的線性表。與棧相同的是,佇列也是一種重要的線性結構,實現乙個佇列同樣需要順序表或鍊錶作為基礎。佇列既可...
棧的順序儲存結構和鏈式儲存結構
在表尾進行插入和刪除操作的線性表 仍然滿足線性表的操作,只是在push和pop有些區別 棧頂 top 允許插入和刪除,另一端稱棧底 bottom 不含任何資料元素的棧叫空棧。棧 後進先出 last in first out 的線性表,簡稱lifo結構。棧的插入稱為進棧,也稱壓棧,入棧。棧的刪除稱為出...
鏈式儲存結構和順序儲存結構的區別
演算法設計的要求 順序儲存結構和鏈式儲存結構的區別 鍊錶儲存結構的記憶體位址不一定是連續的,但順序儲存結構的記憶體位址一定是連續的 鏈式儲存適用於在較頻繁地插入 刪除 更新元素時,而順序儲存結構適用於頻繁查詢時使用。順序儲存結構和鏈式儲存結構的優缺點 例如 當你在字典中查詢乙個字母j的時候,你可以選...