• 技术文章 >后端开发 >Python教程

    Python实现包含min函数的栈

    2016-06-10 15:05:04原创725
    本文实例讲述了Python实现包含min函数的栈。分享给大家供大家参考,具体如下:

    # coding=utf8
    '''
    题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。
    在该栈中,调用min、push及pop的时间复杂度都是O(1)。
    '''
    class Stack():
      def __init__(self):
        self.main_stack = []
        # 辅助栈,每次次最小的元素压入辅助栈
        self.assist_stack = []
        # 记录栈中的最小元素
        self._min = None
      def min(self):
        return self._min
      def push(self, data):
        self.main_stack.append(data)
        if self._min is None:
          self._min = data
        else:
          if data < self._min:
            self._min = data
        # 将最小的元素压入辅助栈
        self.assist_stack.append(self._min)
      def pop(self):
        if len(self.main_stack) == 0:
          raise Exception('no data')
        elif len(self.main_stack) == 1:
          self.assist_stack.pop()
          self._min = None
          return self.main_stack.pop()
        else:
          self.assist_stack.pop()
          self._min = self.assist_stack[-1]
          return self.main_stack.pop()
    if __name__ == '__main__':
      s = Stack()
      s.push(3)
      s.push(4)
      s.push(2)
      s.push(1)
      print s.min()
      s.pop()
      s.pop()
      print s.min()
      s.pop()
      print s.min()
      s.pop()
      print s.min()
      s.pop()
    
    

    更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

    希望本文所述对大家Python程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 包含min函数
    上一篇:python遍历目录的方法小结 下一篇:Python中函数参数设置及使用的学习笔记
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 带你了解Python进程管理神器Supervisor• Python的functools模块使用总结• Python轻量级搜索工具Whoosh的使用(总结分享)• python正则表达式如何实现重叠匹配• 总结分享Python冷门的技巧
    1/1

    PHP中文网