# 棧 先進后出 例如蒸籠,彈夾,飯菜等
class StackFullException(Exception):
"""自定義一個棧溢出異常"""
pass
class StackEmptyException(Exception):
"""自定義一個棧空出異常"""
pass
class Stack:
"""
自定義一個棧
"""
def __init__(self, size):
self.size = size
self.lst = [] # 存放數據的列表
self.top = 0 # 棧頂指針
def push(self, el):
"""入棧"""
if self.top >= self.size:
raise StackFullException('Your stack is full!')
self.lst.insert(self.top, el) # 放入元素
self.top += 1 # 棧頂指針向上移動一下
def pop(self):
"""出棧"""
if self.top == 0:
raise StackEmptyException('Your stack is empty!')
self.top -= 1
el = self.lst[self.top]
return el
s = Stack(4) # 傳入棧的長度
# 往棧傳入數據
s.push('林志玲')
s.push('朱茵')
s.push('金喜善')
s.push('張娜拉')

print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())

