题目描述
用两个队列实现一个栈。
思考用两个栈实现一个队列。
分析
- 队列1 :queue1
- 队列2 :queue2
-
进栈操作:元素入空队列1
-
出栈操作:
- 判断如果队列1只有一个元素,则直接出队。
- 否则,把队1中的元素出队并入队2,直到队1中只有一个元素,再直接出队。
- 为了下一次继续操作,互换队1和队2。
代码
class Stock:
def __init__(self):
self.queue1=[]
self.queue2=[]
def push(self, node):
self.queue1.append(node)
def pop(self):
if len(self.queue1)==0:
return None
while len(self.queue1)!=1:
self.queue2.append(self.queue1.pop(0))
self.queue1,self.queue2=self.queue2,self.queue1 #交换是为了下一次的pop
return self.queue2.pop()