重点代码
思路:1、列表顺序存储,功能多不适合栈模型
2、利用列表进行封装,提供接口方法
#自定义异常
class stackError(Exception):
pass
class SStack:
def __init__(self):
self._elems=[]#栈的存储空间,将列表的最后一个元素作为栈顶
def is_empty(self):#判断列表是否为空
return self._elems==[]
def push(self,val):#入栈,向栈内传送数据
self._elems.append(val)
def pop(self):#出栈,从栈内取出数据
if self.is_empty():
raise stackError("stack is empty")
return self._elems.pop()#弹出并返回一个值
def top(self):#查看最后一个元素
if self.is_empty():
raise stackError("stack is empty")
return self._elems[-1]
###############测试###########
if __name__=="__main__":
st=SStack()
st.push(10)
st.push(20)
st.push(30)
while not st.is_empty():
print(st.pop())
| 留言与评论(共有 0 条评论) “” |