python写算法中的栈

时间:2023-01-07 09:14:40
###########  栈的使用  ###############

class StackFullError(Exception):
pass
class StackEmptyError(Exception):
pass class Stack(object):
def __init__(self,size):
self.size=size
self.lst = []
self.top = 0 def push(self,item):
if self.top == self.size:
raise StackFullError("超出异常")
# self.lst[self.top] = item # 一开始是没有索引0的,会报错
self.lst.insert(self.top,item) # 可以使用insert,根据索引进行插入值
self.top += 1 def pop(self):
if self.top == 0:
raise StackEmptyError("没有了")
self.top -= 1
item = self.lst[self.top] # 获取元素
return item s = Stack(5)
s.push("chen1")
s.push("chen2")
s.push("chen3")
s.push("chen4")
s.push("chen5") print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())