順序表和鏈表的面試總結

順序表和鏈表是數據結構中的兩種存儲形式。

順序表(值得是典型的數組):

原理:順序表存儲是將數據放到一塊物理地址連續的存儲空間中,級相鄰的元素物理地址也是連續的。

順序表的插入如刪除操作:

  • 插入:

最好情況:在表尾插入元素,無需移動元素,時間複雜度爲O(1)。

最壞情況:在表頭插入元素,所有元素將都會進行後移,需要進行移動n次,時間複雜度爲O(n)。

  • 刪除:

最好情況:刪除尾元素,無需移動元素,時間複雜度爲O(1)。

最壞情況:刪除頭部元素,需要向前移動第一個元素除外的所有元素,時間複雜度爲O(n)。

順序表的優點:

  1. 空間利用率高。
  2. 讀取速度快可以根據下標去讀取。

順序表的缺點:

  1. 插入和刪除比較慢。上面介紹刪除時也可以看出刪除和插入元素後此元素後面的元素都要動。
  2. 不可以增加長度,有空間限制。

適用場景:

  1. 適用於表長度變化不大場景。
  2. 多查找,少插入刪除。

鏈表:

原理:鏈表存儲是在程序運行過程中動態分配空間,只要存儲器有空間,就不會發生存儲溢出問題,相鄰元素不要求在物理地址上相鄰,在邏輯上相鄰即可。所存儲的空間分爲兩部分,一部分用來存儲節點值,另一部分用來存儲節點間關係的指針。

鏈表的優點:

  1. 插入和刪除的速度快,保留原來的物理地址。
  2. 沒有空間限制,只與內存空間的大小有關。

鏈表的缺點:

  1. 需要佔取額外的空間去存儲指針,浪費空間。
  2. 查找速度慢,每次都需要從開始節點開始查找。

適用場景:

  1. 適用於頻繁的插入刪除操作。
  2. 適用於線性長度變化大。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章