用两个栈实现队列(python)

蹲街弑〆低调 提交于 2020-02-25 01:11:35

用两个栈实现队列

题目描述

用两个栈来实现一个队列,完成队列的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
       #代码中缺少输入输出
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!