两个栈实现一个队列
class MyQueue:
def __init__(self):
self.A = []
self.B = []
def push(self, x: int) -> None:
self.A.append(x)
def pop(self) -> int:
if self.B:
return self.B.pop()
else:
while self.A:
self.B.append(self.A.pop())
return self.B.pop()
def peek(self) -> int:
if self.B:
return self.B[-1]
else:
return self.A[0]
def empty(self) -> bool:
return not self.A and not self.B
2、两个队列实现一个栈
class Stock:
def __init__(self):
self.queueA=[]
self.queueB=[]
def push(self, node):
self.queueA.append(node)
def pop(self):
if len(self.queueA)==0:
return None
while len(self.queueA)!=1:
self.queueB.append(self.queueA.pop(0))
self.queueA,self.queueB=self.queueB,self.queueA #交换是为了下一次的pop
return self.queueB.pop()