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