zoukankan      html  css  js  c++  java
  • 通过两个队列实现一个栈

    首先 我们需要了解下什么是队列,什么是栈。

    队列的特性是先进先出;

    栈的特性是后进先出;

    class Stack(object):
        #初始化两个列表
        def __init__(self):
            self.queue1 = []
            self.queue2 = []
        #将数据添加到一个列表中
        def push(self,value):
            self.queue1.append(value)
            # print(self.queue1)
    
        def pop(self):
            #假如这个列表没有数据则返回None
            if len(self.queue1) == 0:
                return None
            while 1:
                #循环将列表1的数据的第一个数据取出放入另一个列表中
                if len(self.queue1) == 1:
                    #剩余最后一个的时候则是要的数据
                    value = self.queue1.pop(-1)
                    break
                self.queue2.append(self.queue1.pop(0))
            self.queue1,self.queue2 = self.queue2,self.queue1
    
            return value
    
    obj = Stack()
    obj.push('1')
    obj.push('2')
    obj.push('3')
    
    print(obj.pop())
    print(obj.pop())
    print(obj.pop())
    print(obj.pop())
    import queue
    class Stack(object):
        #初始化两个列表
        def __init__(self):
            self.queue1 = queue.Queue()
            self.queue2 = queue.Queue()
        #将数据添加到一个列表中
        def push(self,value):
            self.queue1.put(value)
            # print(self.queue1)
    
        def pop(self):
            #假如这个列表没有数据则返回None
            if self.queue1.qsize() == 0:
                return None
            while 1:
                #循环将列表1的数据的第一个数据取出放入另一个列表中
                if self.queue1.qsize() == 1:
                    #剩余最后一个的时候则是要的数据
                    value = self.queue1.get()
                    break
                self.queue2.put(self.queue1.get())
            self.queue1,self.queue2 = self.queue2,self.queue1
    
            return value
    
    obj = Stack()
    obj.push('1')
    obj.push('2')
    obj.push('3')
    
    print(obj.pop())
    print(obj.pop())
    print(obj.pop())
    print(obj.pop())
  • 相关阅读:
    简单验证码生成
    java编译器不匹配问题(java compiler level does not match the version of the installed java project facet)
    jQuery中$.fn
    ThreadLocal是什么?
    xmind 快捷键
    powerdesigner 连接oracle
    vs2019 System.FormatException:“Could not parse the JSON file.”
    svn常见操作
    sqlserve报错处理“数据类型 text 和 varchar 在 equal to 运算符中不兼容”
    数据库随机数据
  • 原文地址:https://www.cnblogs.com/blackball9/p/11670148.html
Copyright © 2011-2022 走看看