• 数据结构 栈(顺序表和链表实现) 回顾练习


     1 #!/usr/bin/env python3
     2 
     3 class StackUnderflow(ValueError):
     4         pass
     5 
     6 class Node(object):
     7         def __init__(self, elem, next_=None):
     8                 self.elem = elem
     9                 self.next = next_
    10 
    11 class LStack(object):
    12         def __init__(self):
    13                 self._elems = []
    14 
    15         def is_empty(self):
    16                 return self._elems == []
    17 
    18         def push(self, elem):
    19                 self._elems.append(elem)
    20 
    21         def pop(self):
    22                 if self.is_empty():
    23                         raise StackUnderflow
    24                 return self._elems.pop()
    25 
    26         def top(self):
    27                 if self.is_empty():
    28                         raise StackUnderflow
    29                 return self._elems[-1]
    30 
    31 class SStack(object):
    32         def __init__(self):
    33                 self._top = None
    34 
    35         def is_empty(self):
    36                 return self._top == None
    37 
    38         def push(self, elem):
    39                 self._top = Node(elem, self._top)
    40 
    41         def pop(self):
    42                 if self.is_empty():
    43                         raise StackUnderflow
    44                 e = self._top.elem
    45                 self._top = self._top.next
    46                 return e
    47 
    48         def top(self):
    49                 if self.is_empty():
    50                         raise StackUnderflow
    51                 return self._top.elem
    52 
    53 if __name__ == '__main__':
    54         """
    55         ls = LStack()
    56         ls.push(3)
    57         ls.push(2)
    58         print(ls.top())
    59         print(ls.pop())
    60         print(ls.pop())
    61         """
    62 #-----------------------------------
    63         ss = SStack()
    64         ss.push(3)
    65         ss.push(2)
    66         print(ss.top())
    67         print(ss.pop())
    68         print(ss.pop())
  • 相关阅读:
    9.8-9.9多校互测与牛客网提高一测
    数位$dp$
    互不侵犯_状压$dp$
    状态压缩dp初学__$Corn Fields$
    树形$dp$学习笔记
    最长公共上升子序列$LCIS$
    区间dp学习笔记
    保护知识产权,让创新更有动力!
    crmeb后台七牛云存储相关配置步骤
    crmeb一款最适合二次开发的开源微信公众号小程序框架
  • 原文地址:https://www.cnblogs.com/xautxuqiang/p/6415375.html
Copyright © 2020-2023  润新知