"""
栈的链式存储
"""
# 自定义栈的异常
class StackError(Exception):
pass
# 创建结点类
class Node(object):
def __init__(self,value,next = None):
self.value = value
self.next = next
class Lstack:
def __init__(self):
# 标记栈顶位置
self._top = None
def is_empty(self):
return self._top is None # 判断是否为空
# 入栈
def push(self,elem):
# node = Node(elem)
# node.next = self._top
# self._top = node
self._top = Node(elem,self._top)
# 出栈
def pop(self):
if self._top is None:
raise StackError("stack is empty")
p = self._top
self._top = p.next
return p.value
# 查看栈顶元素
def top(self):
if self._top is None:
raise StackError("stack is empty")
return self._top.value
# 将栈清空
def clear(self):
self._top = None
if __name__ == "__main__":
st = Lstack()
print(st.is_empty())
st.push(10)
st.push(20)
st.push(30)
while not st.is_empty():
print(st.pop())
python栈的链式存储结构
最新推荐文章于 2021-12-07 22:45:11 发布