生活妙招

當前位置 /首頁/生活妙招 > /列表

數組和順序鏈表的區別

數組和順序鏈表的區別

數組和順序鏈表的區別

1、數組的內存需要提前確定,一旦確定不能更改其大小;而鏈表會動態分配內存;

2、數組的內存空間在內存中是連續的;而鏈表的內存空間則不是連續的;

3、數組的元素在棧區分配空間(即數組存儲的元素都是為基本數據類型);而鏈表在堆區分配空間(即鏈表中存儲的元素為對象)

4、數組查詢元素利用下標定位,時間複雜度為O(1);而鏈表定位元素的時間複雜度則為O(n);

5、數組插入或刪除元素的時間複雜度為O(n);而鏈表插入和刪除的時間複雜度為O(1);

數組

數組的存儲方式是將元素在內存中連續存放,由於每個元素佔用內存相同,所以可以通過下標迅速訪問數組中的任何元素。但是如果要在數組中增加一個元素則需要移動大量元素,在內存中空出一個元素的空間,然後將要增加的元素放在其中。同樣的道理,如果想要刪除一個元素,同樣需要移動大量元素去填充掉被刪除的元素。所以説數組查詢元素速度較快,而增刪元素速度較慢。

鏈表

鏈表恰好相反,鏈表中的元素在內存中不是順序存儲的,而是通過存在元素中的指針聯繫到一起的。比如:上一個元素有個指針指到下一個元素,以此類推,直到最後一個元素。如果需要訪問鏈表中的一個元素,則需要從第一個元素開始,一直找到需要的元素位置。但是增加和刪除一個元素對於鏈表結構就非常簡單了,只要修改元素中的指針就可以了。所以説鏈表查詢元素速度較慢,而增刪元素速度較快。

TAG標籤:鏈表 數組 #