5.下列哪一種結構最適合實作「瀏覽器返回上一頁」的功能?
(A) Queue
(B) Stack
(C) Array
(D) Hash Table

答案:登入後查看
統計: A(2), B(11), C(1), D(3), E(0) #3678236

詳解 (共 1 筆)

#7219030

【解題思路】

抓關鍵字:「瀏覽器」「返回上一頁」「適合的資料結構」。

瀏覽器「上一頁」的行為其實就是:

我最後看的是哪一頁?回到那一頁去。

這是典型的:

後進先出 LIFO(Last In First Out)

而 LIFO 的代表資料結構就是:

Stack(堆疊)

所以每次你瀏覽新頁面,就把頁面 push 進 stack;
當你按「上一頁」,就把最上層的頁面 pop 出來。

【為什麼其他選項不正確(逐一破題)】

(A) Queue(佇列)
→ FIFO(先進先出),用來模擬「排隊」,不符合上一頁的行為。

(B) Stack(堆疊)
→ 正確;上一頁就是 LIFO。

(C) Array
→ 雖然可以紀錄頁面,但不符合回上一頁的 LIFO 行為。不夠直覺,也不是最適合。

(D) Hash Table
→ 用來做「快速查詢」,不是用來管理前後順序。

【延伸知識】

瀏覽器其實用兩個 stack:

  1. Back Stack(上一頁堆疊)
    用於返回

  2. Forward Stack(下一頁堆疊)
    用於「前進」

流程示意:

  1. 進入 Page A → push A 到 back stack

  2. 去 Page B → push B

  3. 再去 Page C → push C

按「上一頁」:

  • pop C(當前頁) → forward stack.push(C)

  • 回到 B

這也是 stack 典型應用面試常考題。

【記憶技巧】

口訣:
「上一頁靠堆疊,最後看的先回去。」
「LIFO = 回到上一層。」

【常見錯誤】

學生常會直覺把 array 選成答案,但 array 只是儲存,不負責控制回溯順序。
真正重要的是「行為」而非「能不能存資料」。

0
0