以下是一個基於「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)的概念來處理資料。