面試-陣列和連結串列的區別
陣列 | 連結串列 |
---|---|
隨機訪問速度比較快,增刪慢 | 隨機訪問比較慢,增刪比較快 |
(靜態)陣列從棧中分配空間, 對於程式設計師方便快速,但是自由度小 | 連結串列從堆中分配空間, 自由度大 |
陣列必須事先定義固定的長度(元素個數),不能適應資料動態地增減的情況 | 連結串列動態地進行儲存分配,可以適應資料動態地增減的情況 |
在記憶體中必須連續 | 在記憶體中不需要連續,可以存在任何地方 |
讀取O(1) | 讀取O(n) |
插入、刪除O(n) | 插入、刪除O(1) |
連結串列:
堆:
棧:
堆與棧的區別很明顯:
1.棧記憶體儲存的是區域性變數而堆記憶體儲存的是實體;
2.棧記憶體的更新速度要快於堆記憶體,因為區域性變數的生命週期很短;
3.棧記憶體存放的變數生命週期一旦結束就會被釋放,而堆記憶體存放的實體會被垃圾回收機制不定時的回收。
相關文章
- 陣列和連結串列陣列
- day1-陣列和連結串列陣列
- 陣列與連結串列陣列
- 陣列模擬單連結串列陣列
- 可變陣列——連結串列前言陣列
- 資料結構--陣列、單向連結串列、雙向連結串列資料結構陣列
- 線性結構 陣列與連結串列陣列
- 歸併排序:陣列和連結串列的多種實現排序陣列
- 連結串列專題——面試中常見的連結串列問題面試
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 聊聊陣列與連結串列,棧與佇列陣列佇列
- 【圖解連結串列類面試題】移除連結串列元素圖解面試題
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- L2-022 重排連結串列【陣列】陣列
- 關於多項式的加和、乘積可用連結串列和陣列陣列
- 建立連結串列兩種方法的區別
- golang切片和陣列的區別Golang陣列
- 面試問你連結串列和LinkedList怎麼答?面試
- 面試必備的「反轉連結串列」面試
- 線性表(陣列、連結串列、佇列、棧)詳細總結陣列佇列
- L2-002 連結串列去重【陣列】陣列
- 2024/12/1 【連結串列】 LeetCode 面試題 02.07. 連結串列相交LeetCode面試題
- 資料結構-棧(通過陣列和單向連結串列實現)資料結構陣列
- 重溫四大基礎資料結構:陣列、連結串列、佇列和棧資料結構陣列佇列
- 2.陣列、連結串列、跳錶的基本實現和特性 (7 天掌握演算法面試必考知識點)陣列演算法面試
- “軟連結”和“硬連結”的區別
- 硬連結和軟連結的區別
- 演算法面試(一) 連結串列演算法面試
- 資料結構和演算法面試題系列—連結串列資料結構演算法面試題
- 【淺出 PHP】陣列相加和陣列合並的區別PHP陣列
- 陣列模擬雙連結串列,你get到了嗎?陣列
- 陣列模擬單連結串列你會了嗎?陣列
- 資料結構--單連結串列(通過陣列實現)資料結構陣列
- 搞懂單連結串列常見面試題面試題
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- JS陣列中(for...in)和(for...of)的區別JS陣列
- 為什麼陣列查詢比連結串列要快?而插入刪除比連結串列效率低陣列
- 一個node連結串列翻轉的面試題面試題