關於順序表與鏈表的區別

(C++版)

順序表:

在內存中開闢固定且連續的空間進行增刪查改,其存儲密度爲1(也就是說存儲數據佔用的空間爲1)
注:c++中摒棄了realloc()函數【用於在原有數組空間上擴大倍數】,所以要是嫌空間不夠大,那就new一個新空間。

鏈表:

運用結構體數組開闢出data域和pointer域,存儲在一個單結點中,data用於存放數據,pointer用於存放指向下一節點的指針,在鏈表的開始設置頭結點(指針)用於指向第一個節點,使鏈表可以正常運行

二者優缺點比較

  1. 順序表固定分配空間,所以適用於知道數據元素個數的問題
  2. 鏈表分配空間靈活,對於未知元素個數比較佔優,但其存儲密度較順序表大(每個結點還要單獨開闢空間存放指針,固定元素的話會造成浪費)
  3. 鏈表因爲可以不斷開闢空間,因而會造成存儲空間碎片化
  4. 對於CPU而言,一次性將所有開闢存儲空間都輸入進去的順序表相當而言更加高效。
  5. 查詢操作使用的比較頻繁時,使用順序表會好一些;在插入、刪除操作使用的比較頻繁時,使用單鏈表會好一些。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章