程式設計基礎(虛擬碼追蹤)
下列程式從元素編號1的元素開始,依序走訪以陣列 next 連接元素的鏈結串列並輸出。陣列的元素編號從1開始。next 的值0表示串列的結尾。輸出的值的順序為下列何者?
字串型陣列: val ← {"A", "B", "C", "D", "E"}
整數型陣列: next ← {3, 0, 5, 2, 4}
整數型: p ← 1
while (p ≠ 0)
輸出 val[p]
p ← next[p]
endwhile
- AA, B, C, D, E
- BC, E, D, B
- CA, C, E, D, B
查看答案與解析
正確答案:C. A, C, E, D, B
p = 1 時輸出 val[1] 的 A,並以 p ← next[1] 前進到 p = 3。接著輸出 C 前進到 next[3] = 5,輸出 E 前進到 next[5] = 4,輸出 D 前進到 next[4] = 2,輸出 B 後 next[2] = 0,離開迴圈。輸出為 A, C, E, D, B。串列的順序不是由陣列的排列順序決定,而是由 next 的值決定。
- A. 這是依陣列的排列順序輸出的情況。走訪的順序由 next 的值決定。
- B. 這是在輸出之前先讓 p 前進時的順序,少了開頭的 A。
- C. 正確。依元素編號 1 → 3 → 5 → 4 → 2 的順序走訪。