用list的尾部做栈顶。兄弟萌,话不多说,上代码!
"""栈的顺序表实现"""
class StackUnderflow(ValueError): # 栈下溢(空栈访问)
pass
class SStack(): # 基于顺序表技术实现的栈类
def __init__(self): # 用list对象 _elems存储栈中元素
self._elems = [] # 所有栈操作都映射到list操作
def is_empty(self):
return self._elems == []
def top(self): # 查看栈顶元素
if self._elems == []:
raise StackUnderflow("in SStack.top()")
return self._elems[-1]
def push(self,elem):
self._elems.append(elem)
def pop(self): # 弹出栈顶元素
if self._elems == []:
raise StackUnderflow("in SStack.pop()")
return self._elems.pop()
st1 = SStack()
st1.push(3)
st1.push(5)
while not st1.is_empty():
print(st1.pop())
输出:
5
3