这里借助Python的list结构,实现顺序栈,其中的一些栈操作都是借助list的一些内置操作来实现的。
class StackUnderflow(ValueError):#以list实现了顺序栈的结构
pass
class SStack():
def __init__(self):
self.__elmes = []
def is_empty(self):
return self.__elmes == []
def top(self):
if self.__elmes == []:
raise StackUnderflow("in SStack.top()")
return self.__elmes[-1]
def push(self,elem):
self.__elmes.append(elem)
def pop(self):
if self.__elmes == []:
raise StackUnderflow("in SStack.pop()")
return self.__elmes.pop()#list中的pop没有给出元素时,默认弹出最后一个元素
st1= SStack()
st1.push(3)
st1.push(5)
while not st1.is_empty():
print(st1.pop())
#输出:5 3