首先 我们需要了解下什么是队列,什么是栈。
队列的特性是先进先出;
栈的特性是后进先出;
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())