zoukankan      html  css  js  c++  java
  • 两个队列生成一个栈

    两个队列生成一个栈

    想要实现两个队列生成一个栈,需要先了解队列和栈的特性:

    • 队列,先进先出。
    • 栈,后进先出。

    使用两个队列生成一个栈的实现思路为:

    import queue
    
    
    class Stack(object):
        def __init__(self):
            self.master_queue = queue.Queue()
            self.minor_queue = queue.Queue()
    
        def push(self, value):
            """
            入栈
            :param value:
            :return:
            """
            self.master_queue.put(value)
    
        def pop(self):
            """
            出栈
            :return:
            """
            if self.master_queue.qsize() == 0:
                return None
    
            while True:
                if self.master_queue.qsize() == 1:
                    value = self.master_queue.get()
                    break
                self.minor_queue.put(self.master_queue.get())
            # 第二步 互换
            self.master_queue, self.minor_queue = self.minor_queue, self.master_queue
    
            return value
    
    
    obj = Stack()
    obj.push('涉哥')
    obj.push('刚哥')
    obj.push('雷哥')
    obj.push('强哥')
    
    print(obj.pop())
    print(obj.pop())
    print(obj.pop())
    print(obj.pop())
    

      

  • 相关阅读:
    HDU1205 吃糖果【水题】
    HDU2568 前进【水题】
    架构图初体验
    五层架构
    文件系统权限设计涉及范畴
    微服务
    领域驱动设计
    容器技术Docker
    架构总结
    仓储模式的简单理解
  • 原文地址:https://www.cnblogs.com/a438842265/p/11606313.html
Copyright © 2011-2022 走看看