其他分享
首页 > 其他分享> > 用两个栈来实现队列

用两个栈来实现队列

作者:互联网

题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

算法实现

利用两个栈都是后进先出的特性,可以实现负负得正的效果。
即每次入栈都进入stack1,每次出栈先在stack2出栈,若stack2为空,则将stack1的元素全部出栈,按序入栈stack2,然后stack2出栈一个元素即可。

代码

class CQueue(object):

    def __init__(self):
        self.stack1 = []
        self.stack2 = []

    def appendTail(self, value):
        self.stack1.append(value)

    def deleteHead(self):
        if len(self.stack1) == 0 and len(self.stack2) == 0:
            return -1
        if (len(self.stack2) == 0):
            while len(self.stack1) != 0:
                self.stack2.append(self.stack1.pop())
        return self.stack2.pop()

标签:出栈,队列,self,len,实现,栈来,stack2,stack1
来源: https://www.cnblogs.com/isshpan/p/12544469.html