5.下列哪一種結構最適合實作「瀏覽器返回上一頁」的功能?
(A) Queue
(B) Stack
(C) Array
(D) Hash Table
答案:登入後查看
統計: A(2), B(11), C(1), D(3), E(0) #3678236
統計: 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:
-
Back Stack(上一頁堆疊)
用於返回 -
Forward Stack(下一頁堆疊)
用於「前進」
流程示意:
-
進入 Page A → push A 到 back stack
-
去 Page B → push B
-
再去 Page C → push C
按「上一頁」:
-
pop C(當前頁) → forward stack.push(C)
-
回到 B
這也是 stack 典型應用面試常考題。
【記憶技巧】
口訣:
「上一頁靠堆疊,最後看的先回去。」
「LIFO = 回到上一層。」
【常見錯誤】
學生常會直覺把 array 選成答案,但 array 只是儲存,不負責控制回溯順序。
真正重要的是「行為」而非「能不能存資料」。
0
0