304 用队列实现栈2 #
- 数据入栈的实现
- 队列实现栈
数据入栈的实现 #
在使用队列实现栈的过程中,数据入栈的操作相对麻烦,首先需要准备两个队列,再设计入栈的流程
import collections class MyStack: def __init__(self): #初始化两个队列 self.queue1 = collections.deque() self.queue2 = collections.deque() def push(self, x): self.queue2.append(x) while self.queue1: self.queue2.append(self.queue1.popleft()) self.queue1, self.queue2 = self.queue2, self.queue1
队列实现栈 #
队列实现栈的类如下,包含push,pop,top,empty四种基本操作
import collections class MyStack: def __init__(self): #初始化两个队列 self.queue1 = collections.deque() self.queue2 = collections.deque() def push(self, x): self.queue2.append(x) while self.queue1: self.queue2.append(self.queue1.popleft()) self.queue1, self.queue2 = self.queue2, self.queue1 def pop(self): return self.queue1.popleft() def top(self): return self.queue1[0] def empty(self): return not self.queue1
小结 #
习题 #
- 为什么进栈后要交换两个队列
- 尝试使用单队列模拟栈