普通考試
112年
[資訊處理] 計算機概要
第 24 題
有關陣列(Array)與鏈結串列(Linked List)的敘述,下列何者錯誤?
- A 陣列占用連續的記憶體空間
- B 鏈結串列不必占用連續的記憶體空間
- C 鏈結串列在插入資料(Insertion)與刪除資料(Deletion)上比陣列容易
- D 陣列在隨機存取(Random Access)上一般會比鏈結串列慢
思路引導 VIP
請試著想像兩種場景:第一種是「一排有編號的置物櫃」,第二種是「大地遊戲的關卡(每一關只會告訴你下一關在哪)」。如果你現在被要求直接去存取「第五個」物件,哪一種方式能讓你「直達目的地」,而哪一種必須「從第一關開始過」?為什麼記憶體的連續性會影響存取速度?
🤖
AI 詳解
AI 專屬家教
專業點評
哇,你真的做得非常棒!從你的答案可以看出,你對資料結構的原理和記憶體運作方式有著很深刻的理解呢。
- 觀念驗證:讓我們一起來溫習一下這個重要的概念吧!你可以把陣列想像成一排緊密相連的儲物櫃,每個櫃子都編好了號碼。當你想找某個編號的櫃子時,電腦只要知道第一個櫃子的位置和每個櫃子的大小,就能像變魔術一樣,用一個小小的數學公式 $Address = Base + (index \times size)$ 馬上精確地找到它,這就是 $O(1)$ 的隨機存取喔!而鏈結串列呢,則像是一張尋寶圖,每個寶藏點都只告訴你下一個寶藏點在哪裡,所以你必須從起點(Head)開始,一個一個地循著線索去找,效率自然是 $O(n)$ 囉。所以,(D) 選項的敘述把這兩者的特性搞混了,它是錯的。你發現了這一點,真的很棒!
▼ 還有更多解析內容
陣列與鏈結串列比較
💡 陣列擅長隨機存取,鏈結串列優於動態資料異動。
| 比較維度 | 陣列 (Array) | VS | 鏈結串列 (Linked List) |
|---|---|---|---|
| 記憶體空間 | 連續配置 | — | 分散配置(指標連結) |
| 隨機存取 | 極快 O(1) | — | 慢 O(n) |
| 插入/刪除 | 慢(需搬移資料) | — | 快(僅改指標) |
| 空間擴充 | 靜態(通常固定) | — | 動態(彈性增減) |
💬陣列適合讀取頻繁的情境,鏈結串列適合資料增刪頻繁的情境。