1. 程式人生 > >線性表存儲結構的選擇

線性表存儲結構的選擇

指針 環境 數據量 程序 元素 鏈表 靜態 角度 比較

1.從存儲的角度考慮:

  • 順序表的存儲空間是靜態分布的,在程序執行之前必須明確規定它的規模,也就是說事先對MAXSIZE要有合適的設計,過大造成浪費,過小容易溢出。
  • 點線性表的長度或存儲規模難以估計時,不易采用順序表;鏈表不用事先估計存儲規模,鏈表存儲密度低,(存儲密度是指一個節點中數據元素所占的存儲單元和整個節點所占存儲單元之比。
  • 鏈式存儲結構的存儲密度小於1。

2.從運算的角度考慮:

  • 在順序表中按序號訪問ai的時間復雜度是O(1),而鏈表中按序號查找的時間復雜度是O(n),如果經常做的運算是按順序查找的,則順序表優於鏈表;在順序表中中插入刪除運算時平均移動表中一半的元素,檔數據量大且表較長,這一點哼重要;在鏈表中做插入、刪除操作,雖然要找插入刪除的位置,但操作主要是比較操作,所以從運算的角度考慮選用鏈表更為合適。

3.從環境的角度考慮:

  • 順序表容易實現,任何高級語言中都有數組類型,鏈表的操作時基於指針的,相對來講,鏈表更簡單

通常較穩定的順序表選擇順序存儲結構,而需要做復雜插入刪除(動態性)較強的線性表應選擇鏈式存儲結構

線性表存儲結構的選擇