zoukankan      html  css  js  c++  java
  • 数据结构 栈(顺序表和链表实现) 回顾练习

     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())
  • 相关阅读:
    Opencv(1)介绍篇
    植被覆盖度制图
    GIS应用开发AO(2)-空间分析ITopologicalOperate
    GIS应用开发AO(1)_普通几何图形绘制
    初识机器学习-人脸识别
    ArcGIS API for javascript4.3——RouteTask
    javascript学习(1)随机点名应用
    生活感悟之六
    生活感悟之五
    生活感悟之四
  • 原文地址:https://www.cnblogs.com/xautxuqiang/p/6415375.html
Copyright © 2011-2022 走看看