zoukankan      html  css  js  c++  java
  • python实现栈

      由于python弱类型,因此免去了写泛型的麻烦。我定义一个stack类以栈的操作来维护一个list。

     1 class stack:
     2     def __init__(self, _size = 1024):
     3         self.data = []
     4         self._size = _size
     5         self._top = -1
     6 
     7     def empty(self):
     8         if self._top == -1:
     9             return True
    10         else:
    11             return False
    12 
    13     def size(self):
    14         return self._top+1
    15 
    16     def top(self):
    17         return self.data[self._top]
    18 
    19     def clear(self):
    20         self.data = []
    21         self._top = -1
    22 
    23     def push(self, ele):
    24         if self._top + 1 == self._size:
    25             raise 'Stack Over Flow'
    26         else:
    27             self.data.append(ele)
    28             self._top += 1
    29 
    30     def pop(self):
    31         if self.empty():
    32             raise 'Stack Under Flow'
    33         else:
    34             ele = self.data[self._top]
    35             del self.data[self._top]
    36             self._top -= 1
    37             return ele
    38 
    39 s = stack(5)
    40 
    41 s.push(1)
    42 s.push(2)
    43 s.push(3)
    44 s.push(5)
    45 s.push(4)
    46 # s.push(233)
    47 
    48 size = s.size()
    49 for i in range(0, size):
    50     print(s.top())
    51     s.pop()
  • 相关阅读:
    mysql复合索引的优点和注意事项
    linux服务器时间更新
    mysql慢日志
    Proftpd linux服务器FTP安装配置
    js 截取字符串
    在工信部注销网站备案
    史玉柱传奇
    css white-space属性
    获取微信授权
    禁用ipv6
  • 原文地址:https://www.cnblogs.com/kirai/p/4822746.html
Copyright © 2011-2022 走看看