class Q_to_S(object):
def __init__(self):
self.queue1 = []
self.queue2 = []
def push(self,data):
if len(self.queue1) == 0:
self.queue2.append(data)
else:
self.queue1.append(data)
def top(self):
if len(self.queue1) == 0 and len(self.queue2) == 0:
return None
elif len(self.queue1) == 0:
for i in range(len(self.queue2)-1):
self.queue1.append(self.queue2.pop(0))
return self.queue2.pop(0)
else:
for i in range(len(self.queue1)-1):
self.queue2.append(self.queue1.pop(0))
return self.queue2.pop(0)
基本思想,总有一个队列在栈进行top之后是处于空的状态。
还未调试,只是随便写了一下