顺序存储(数据结构--栈)

备注:以列表为基础进行对此的封装,以便达到栈的效果及作用
1
""" 2 栈的顺序存储结构 3 重点代码 4 """ 5 6 # 自定义栈异常 7 class StackError(Exception): 8 pass 9 10 # 基于列表实现顺序栈 11 class SStack: 12 def __init__(self): 13 # 约定列表的最后一个元素为栈顶 14 self._elems = [] 15 16 def top(self): 17 if not self._elems: 18 raise StackError("stack is empty") 19 return self._elems[-1] 20 21 # 判断栈是否为空 22 def is_empty(self): 23 return self._elems == [] 24 25 # 入栈 26 def push(self,elem): 27 self._elems.append(elem) 28 29 # 出栈 30 def pop(self): 31 if not self._elems: 32 raise StackError("stack is empty") 33 return self._elems.pop() 34 35 36 if __name__ == "__main__": 37 st = SStack() # 初始化栈 38 # print(st.top()) 39 print(st.is_empty()) 40 st.push(10) 41 st.push(20) 42 st.push(30) 43 while not st.is_empty(): 44 print(st.pop())

猜你喜欢

转载自www.cnblogs.com/kavin-lee/p/10793499.html