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())
  • 相关阅读:
    selenium自动化测试资源整理
    python获取目录下文件夹名称
    Appium-测试失败后屏幕截图的
    appium 多个设备同时执行
    七 Appium常用方法介绍
    六 APPIUM Android 定位方式
    Python运维开发基础08-文件基础
    Python运维开发基础09-函数基础
    Python运维开发基础06-语法基础
    Python运维开发基础07-文件基础
  • 原文地址:https://www.cnblogs.com/blackball9/p/11670148.html
Copyright © 2011-2022 走看看