免費開始練習
moea_joint_essay 112年 [資訊] 資訊管理、程式設計

第 三 題

📖 題組:
在計算機科學中,「stack」是 1 種常見的資料結構,請回答下列問題:(3 題,共 15 分)
📝 此題為申論題,共 3 小題

小題 (三)

請基於「stack」概念就以下問題設計 1個程式(若程式非基於「stack」概念進行實作,將不予計分):
將 4 個浮點數(20.22、12.21、70.25 和 58.29)插入 1 個 stack 中,然後逐一從該 stack 中移除它們,且必須能檢測該 stack 是否已為空。(6 分)

思路引導 VIP

使用 Python、C 或 Java 等常見語言實作,設計一個陣列或串列來模擬 stack。實作 push、pop、is_empty 功能,並依題目給的數值依序推入,再迴圈取出直到空。

🤖
AI 詳解
AI 專屬家教

以下使用 Python 程式語言,基於 List (串列) 實作 Stack 的概念:

# 建立一個 Stack 類別

小題 (一)

請說明何謂「stack」?(3 分)

思路引導 VIP

定義 Stack 是一種後進先出 (LIFO, Last-In-First-Out) 的線性資料結構,並提到基本操作 Push 和 Pop。

🤖
AI 詳解
AI 專屬家教

堆疊 (Stack) 是一種基於「後進先出」(LIFO, Last-In-First-Out) 原則運作的線性資料結構。在堆疊中,所有資料的加入(Push/推入)與移除(Pop/彈出)動作都只能在同一端進行,這一端被稱為「頂端」(Top)。最後被放入堆疊的元素,將會是第一個被取出的元素。

小題 (二)

請以 2 個實際應用案例具體說明如何使用「stack」?(6 分)

思路引導 VIP

提出兩個常見且經典的 stack 應用場景:函式呼叫(Function Call Stack) 和 復原機制(Undo Mechanism) 或 括號匹配、瀏覽器上一頁。

🤖
AI 詳解
AI 專屬家教
  1. 函式呼叫堆疊 (Function Call Stack):在程式執行時,當主程式呼叫子函式時,系統會將主程式目前的執行狀態及返回記憶體位址「Push」到系統堆疊中;當子函式執行完畢後,系統會從堆疊中「Pop」出該位址並返回主程式繼續執行,保證了多層函式呼叫的正確順序。
  2. 軟體中的復原/上一步機制 (Undo Mechanism):在文書處理軟體或瀏覽器中,使用者的每一次操作或瀏覽網頁紀錄都會被「Push」到一個堆疊中。當使用者按下「復原(Ctrl+Z)」或「上一頁」時,系統會從堆疊中「Pop」出最近一次的操作紀錄,以回復到前一個狀態。

🏷️ 相關主題

物件導向程式設計與系統分析核心概念
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題