天天看點

圖解數組和連結清單

有時候需要在記憶體中存儲一系列元素。

比如待辦事項,用數組還是連結清單呢?

數組意味着所有待辦事項在記憶體中都是相連的(緊靠在一起的)。

圖解數組和連結清單
圖解數組和連結清單

連結清單中的元素可以存儲在記憶體

圖解數組和連結清單

連結清單的每個元素都存儲了下一個元素的位址,進而使得一系列的随機的記憶體位址串在了一起。

圖解數組和連結清單

隻要有足夠的記憶體空間,就能為連結清單配置設定記憶體。

當同時讀取所有元素時,連結清單的效率很高,讀第一個,讀第二個,以此類推。

但當你需要跳躍,連結清單的效率就很低了。

數組,則很友善讀取每一個元素的内容。因為知道第一個,就知道了所有的位址。它們是連在一起的。

圖解數組和連結清單
圖解數組和連結清單

插入多,讀取少。用連結清單。

插入少,讀取多。用數組。

連結清單更友善一些,隻需要修改它前面的那個元素指向的位址就可以了。

圖解數組和連結清單

使用數組時,必須将後面的元素都向後移動。如果空間不足,還要重新複制新的空間。

也是連結清單更好一些。

隻需要将前一個元素指向的位址更改即可。

使用數組,則必須将後面的元素都向前移動。

圖解數組和連結清單

但是實際的應用中,數組用的更多一些。因為它支援随機讀取。

本文轉自TBHacker部落格園部落格,原文連結:http://www.cnblogs.com/jiqing9006/p/7615467.html,如需轉載請自行聯系原作者