用两个栈实现队列
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
算法分析
算法流程
Python语言语言前提下,定义两个列表(相当于C++中的堆栈),其中acceptStack列表(先进后出)用来存放输入的数据,putoutStack列表(先进后出)用来存放输出的数据。在C++中,堆栈的特征是先进后出,而队列的特征是先进先出,若用acceptStack存储输入的数据,再输出前先将输入的数据存入putoutStack,再输出,就可实现用两个堆栈构成一个队列的效果。
示例程序
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.acceptStack = []
self.outputStack = []
def push(self, node):
# write code here
self.acceptStack.append(node)
def pop(self):
if self.outputStack == []:
while self.acceptStack:
self.outputStack.append(self.acceptStack.pop())
if self.outputStack != []:
return self.outputStack.pop()
else:
return None
#代码中缺少输入输出