题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
# -*- coding:utf-8 -*-
class Solution:
def push(self, node):
# write code here
def pop(self):
# return xx
思路:
栈 : 后进先出
队列:先进先出
# -*- coding:utf-8 -*-
class Solution:
stack = [] # 存储栈
assist_stack = [] # 辅助栈
def push(self, node):
# write code here
self.stack.append(node) # 存储栈 加入元素
def pop(self):
# return xx
while self.stack: # 当存储栈中有元素
# 将存储栈末尾元素存入辅助栈 (后进先出)
self.assist_stack.append(self.stack.pop())
if self.assist_stack:
return self.assist_stack.pop() # 辅助栈 将结果 先进后出
# -*- coding:utf-8 -*-
class Solution:
stack = [] # 存储栈
assist_stack = [] # 辅助栈
def push(self, node):
# write code here
self.stack.append(node) # 存储栈 加入元素
def pop(self):
# 由于所有元素都存入辅助栈,且pop() 函数每次只弹出一个元素
if self.assist_stack: # 当辅助栈中存在元素时
return self.assist_stack.pop() # 辅助栈将结果弹出 (先进后出)
while self.stack: # 当存储栈中有元素
# 将存储栈末尾元素存入辅助栈 (后进先出)
self.assist_stack.append(self.stack.pop())
if self.assist_stack:
return self.assist_stack.pop() # 辅助栈 将结果 先进后出