用两个栈来实现队列
作者:互联网
题目描述
用两个栈来实现一个队列,完成队列的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