阿摩線上測驗 登入

申論題資訊

試卷:112年 - 112 經濟部所屬事業機構_新進職員甄試_統計資訊:資料庫及資料探勘、程式設計#116958
科目:國營事業◆1.資料庫及資料探勘 2.程式設計
年份:112年
排序:0

題組內容

五、在計算機科學中,「stack」是 1 種常見的資料結構,請回答下列問題:(3 題,共 15 分)

申論題內容

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

詳解 (共 1 筆)

詳解 提供者:hchungw
以下是一個基於「stack」概念的Python程式,此程式將四個浮點數(20.22、12.21、70.25和58.29)插入一個堆疊中,然後逐一從該堆疊中移除它們,並檢測該堆疊是否已經為空。
python
複製程式碼
class Stack:
    def __init__(self):
        self.stack = []
    def push(self, value):
        self.stack.append(value)
    def pop(self):
        if not self.is_empty():
            return self.stack.pop()
        else:
            return None
    def peek(self):
        if not self.is_empty():
            return self.stack[-1]
        else:
            return None
    def is_empty(self):
        return len(self.stack) == 0
    def size(self):
        return len(self.stack)
# 創建一個堆疊實例
stack = Stack()
# 插入四個浮點數
stack.push(20.22)
stack.push(12.21)
stack.push(70.25)
stack.push(58.29)
# 打印堆疊中的元素
print("插入元素後的堆疊內容:", stack.stack)
# 逐一從堆疊中移除元素並打印
while not stack.is_empty():
    removed_element = stack.pop()
    print(f"移除的元素: {removed_element}")
# 檢查堆疊是否為空
if stack.is_empty():
    print("堆疊現在是空的。")
else:
    print("堆疊不是空的。")
程式說明:
Stack類:
__init__:初始化堆疊,使用一個空列表來表示堆疊。
push:將一個元素壓入堆疊。
pop:從堆疊中彈出一個元素,如果堆疊為空,返回None。
peek:查看堆疊頂端的元素但不移除它,如果堆疊為空,返回None。
is_empty:檢查堆疊是否為空,返回布林值。
size:返回堆疊的元素數量。
插入和移除元素:
使用push方法將四個浮點數壓入堆疊。
使用pop方法逐一從堆疊中移除元素,並在每次移除時打印被移除的元素。
使用is_empty方法檢測堆疊是否為空,並打印相應的訊息。
執行結果:
程式將按順序插入四個浮點數,然後按後進先出的順序逐一移除並打印這些元素。最後,程式將打印堆疊是否為空的訊息。
透過這個示例程式,我們可以清楚地看到堆疊的基本操作是如何實現的,並且該程式嚴格按照堆疊(後進先出,LIFO)的概念來處理資料。