免費開始練習
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) 實作 Stack 的 push, pop 以及 is_empty。

🤖
AI 詳解
AI 專屬家教

以下使用 Python 語言基於 list 結構來實作一個簡單的 Stack 概念程式:

class Stack:

小題 (一)

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

思路引導 VIP

解釋 Stack 資料結構的特性,LIFO (後進先出)。

🤖
AI 詳解
AI 專屬家教

「堆疊 (Stack)」是一種遵循「後進先出」(Last-In, First-Out, LIFO) 原則的線性資料結構。這意味著最後加入 (Push) 堆疊的元素,將會是最先被移除 (Pop) 的元素。堆疊的操作僅限於同一端 (稱為頂端,Top) 進行。

小題 (二)

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

思路引導 VIP

舉出兩個實務應用案例,如函數呼叫堆疊 (Call Stack)、瀏覽器的上一頁功能、括號匹配、復原(Undo)功能。

🤖
AI 詳解
AI 專屬家教
  1. 程式的函式呼叫 (Function Call Stack):作業系統或編譯器會使用堆疊來管理函式呼叫的執行順序。當一個函式被呼叫時,系統會將區域變數與返回位址推入(Push)堆疊;當函式執行完畢後,再從堆疊中彈出(Pop)這些資訊以返回呼叫點繼續執行。
  2. 軟體的「復原」(Undo) 功能:如文書編輯器或繪圖軟體,會將使用者的每一步操作記錄推入堆疊中。當使用者按下「復原」時,程式會從堆疊頂端彈出最近一次的操作,並將狀態恢復到該操作之前的模樣。

🏷️ 相關主題

程式設計演算法與資料結構實作
查看更多「[統計資訊] 資料庫及資料探勘、程式設計」的主題分類考古題