题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack1=[]
self.stack2=[]
def push(self, node):
# write code here
#stack1=self.items
self.stack1.append(node)
#栈是先进后出;push是队尾入列,pop队尾出列。
#队列是先进先出,push是队尾入列;pop队首出列。
#stack1用来存储数据,stack2用来缓冲。
return self.stack1
def pop(self):
# return xx
#list.pop([index=-1])默认最后一个函数
k=len(self.stack1)
print(k)
for i in range(0,len(self.stack1)):
self.stack2.append(self.stack1.pop())
xx=self.stack2.pop()
for i in range(0,k-1):
self.stack1.append(self.stack2.pop())
#self.stack1.reverse()
#list.reverse()没有返回值,但是会对list进行翻转
#returnValue=list.pop() 返回值是pop出的对象
return xx
注意,虽然用list.reverse()很容易实现,但是别人说了用两个栈了。