《数据结构与算法》——代码篇
4-1 顺序栈:判空、获取栈顶元素、入栈、出栈、遍历
#顺序栈
class StackUnderflow(IndexError):
pass
class SStack:
def __init__(self):
self._elem = []
# 判空
def is_empty(self):
return self._elem == []
# 获取栈顶元素
def top(self):
if not self._elem:
raise StackUnderflow("in SStack.top()")
return self._elem[-1]
# 入栈
def push(self, elem):
self._elem.append(elem)
# 出栈
def pop(self):
if not self._elem:
raise StackUnderflow("in SStack.pop()")
return self._elem.pop()
# 遍历
def travel(self):
for i in self._elem:
print(i, end=" ")
print()
if __name__ == "__main__":
st1 = SStack()
print(st1.is_empty())
st1.push(2)
st1.push(4)
print(st1.pop())
st1.push(6)
st1.push(8)
print(st1.top())
print(st1.is_empty())
st1.travel()