首先了解順序表和鏈表的概念
1.順序表
順序表是在計算機內存中以數組的形式保存的線性表,是指用一組地址連續的存儲單元依次存儲數據元素的線性結構。
線性表采用順序存儲的方式存儲就稱之為順序表。順序表是將表中的結點依次存放在計算機內存中一組地址連續的存儲單元中。
特點:
(1)在順序表中,各個表項的邏輯順序與其存儲的物理順序一致,即第 i 個表項存儲於第 i 個物理位置(1 < i < n)
(2)對順序表中的所有表項,即可以進行順序的訪問,也可以隨機的訪問,也就是說,既可以從表的第一個表項開始逐個訪問表項
也可以按照表項的序號(下標)直接的訪問。
(3)無需為表示結點間的邏輯關系而增加額外的存儲空間,存儲利用率提高。
(4)可以方便的存儲表中的任一結點,存儲速度快。
2.鏈表
鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。 相比於線性表順序結構,操作復雜。
特點:
(1)可以方便的進行擴充。
(2)可以方便的刪除和插入。
由於順序表:
1)在表中插入新元素或刪除無用元素時,為了保持其他元素的相對次序不變,平均需要移動一半元素,運行效率低
2)由於順序表要求占用連續的空間,如果預先進性存儲分配。則當表長度變化較大時,難以確定合適的存儲空間帶大小,若
按可能達到的最大的長度預先分配表的空間,則容易造成一部分空間長期的限制而得不到充分的利用,若事先對表中的空間估計不足
則插入操作可能是表長超過預先的內存而造成內存溢出,但如果采用指針的方式定義數組,在程序運行時動態的分配內存,一旦需要
就可以分配他,這樣可以擴充內存,但是是時間開銷比較大
因此這就可以采用鏈表很好的解決。