兄弟萌,话不多说,上代码!
"""链表实现栈"""
class StackUnderflow(ValueError):
pass
class LNode:
def __init__(self,elem,next_=None):
self.elem = elem
self.next = next_
class LStack(): # 基于链接表技术实现的栈类,用LNode作为结点
def __init__(self):
self._top = None
def is_empty(self):
return self._top is None
def top(self):
if self._top is None:
raise StackUnderflow("in LStack.top()")
return self._top.elem
def push(self,elem):
self._top = LNode(elem,self._top)
def pop(self):
if self._top is None:
raise StackUnderflow("in LStack.pop()")
p = self._top
self._top = p.next
return p.elem