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