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())
    

      

  • 相关阅读:
    react的路由以及传值方法
    三连击
    给网页添加鼠标样式
    单词统计(续)
    个人课程总结
    构建之法阅读笔记02
    构建之法阅读笔记01
    第十六周总结
    计算最长英语单词链
    第十五周总结
  • 原文地址:https://www.cnblogs.com/a438842265/p/11606313.html
Copyright © 2011-2022 走看看