陣列,在記憶體上給出了連續的空間.
鍊錶,記憶體位址上可以是不連續的,每個鍊錶的節點包括原來的記憶體和下乙個節點的資訊(單向的乙個,雙向鍊錶的話,會有兩個).
陣列優於鍊錶的:
1.記憶體空間占用的少,因為鍊錶節點會附加上一塊或兩塊下乙個節點的資訊.但是陣列在建立時就固定了.所以也有可能會因為建立的陣列過大或不足引起記憶體上的問題.
2.陣列內的資料可隨機訪問.但鍊錶不具備隨機訪問性.這個很容易理解.
陣列在記憶體裡是連續的空間.比如如果乙個陣列位址從100到200,且每個元素占用兩個位元組,那麼100-200之間的任何乙個偶數都是陣列元素的位址.可以直接訪問.鍊錶在記憶體位址可能是分散的.所以必須通過上一節點中的資訊找能找到下乙個節點.
3.查詢速度上.這個也是因為記憶體位址的連續性的問題.
鍊錶優於陣列
的: 1.插入與刪除的操作.如果陣列的中間插入乙個元素,那麼這個元素後的所有元素的記憶體位址都要往後移動.刪除的話同理.只有對資料的最後乙個元素進行插入刪除操作時,才比較快.
鍊錶只需要更改有必要更改的節點內的節點資訊就夠了.並不需要更改節點的記憶體位址.
2.記憶體位址的利用率方面.不管你記憶體裡還有多少空間,如果沒辦法一次性給出陣列所需的要空間,那就會提示記憶體不足,磁碟空間整理的原因之一在這裡.而鍊錶可以是分散的空間位址.
3.鍊錶的擴充套件性比陣列好.因為乙個陣列建立後所占用的空間大小就是固定的.如果滿了就沒法擴充套件.只能新建乙個更大空間的陣列.而鍊錶不是固定的,可以很方便的擴充套件.
鍊錶和陣列的本質差異 :
1 在訪問方式上 -------陣列可以隨機訪問其中的元素 ;鍊錶則必須是順序訪問,不能隨機訪問。
2 空間的使用上-------- 鍊錶可以隨意擴大 ;陣列則不能。
陣列:優點:使用方便 ,查詢效率 比煉表高,記憶體為一連續的區域。
缺點:大小固定,不適合動態儲存,不方便動態新增。
鍊錶:優點:可動態新增刪除,大小可變。
缺點:只能通過順次指標訪問,查詢效率低。
順序表的優點:查詢方便,適合隨機查詢。
順序表的缺點:插入、刪除操作不方便,因為插入、刪除操作會導致大量元素的移動。
鍊錶的特性是在中間任意位置新增刪除元素的都非常的快,不需要移動其它的元素。
通常鍊錶每乙個元素都要儲存乙個指向下乙個元素的指標(單鏈表);雙鏈表的每個元素即要儲存到下乙個元素的指標,還要儲存乙個上乙個元素的指標。
迴圈鍊錶則把最後乙個元素中儲存下乙個元素指標指向第乙個元素。
陣列是一組具有相同型別和名稱的變數的集合。這些變數稱為陣列的元素,每個陣列元素都有乙個編號,這個編號叫做下標,我們可以通過下標來區別這些元素。陣列元素的個數有時也稱之為陣列的長度。
陣列在進行查詢,排序操作是很方便;鍊錶不需要連續空間,而且插入操作方便。
陣列與鍊錶的比較,鍊錶的建立及其插入刪除
陣列與鍊錶均為線性表,即乙個元素的前繼或後驅只有乙個元素,為資料結構的基礎。其中陣列與鍊錶相比,陣列具有按索引查詢方便的特點,其查詢的時間複雜度為o 1 而鍊錶查詢時最壞情況時,所查元素位於鍊錶末端,需查詢n次,時間複雜度為o n 鍊錶則具有插入刪除方便的特點,無論在什麼位置插入,只需將將其next...
陣列與鍊錶
陣列和鍊錶簡介 在計算機中要對給定的資料集進行若干處理,首要任務是把資料集的一部分 當資料量非常大時,可能只能一部 分一部分地讀取資料到記憶體中來處理 或全部儲存到記憶體中,然後再對記憶體中的資料進行各種處理。例如,對於資料集 s,要求 s 中元素的和,首先要把資料儲存到記憶體中,然後再將記憶體中的...
陣列與鍊錶
陣列,在記憶體上給出了連續的空間.鍊錶,記憶體位址上可以是不連續的,每個鍊錶的節點包括原來的記憶體和下乙個節點的資訊 單向的乙個,雙向鍊錶的話,會有兩個 優點 使用方便 查詢效率 比煉表高,記憶體為一連續的區域 缺點 大小固定,不適合動態儲存,不方便動態新增 優點 可動態新增刪除 大小可變 缺點 只...