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之后是处于空的状态。
还未调试,只是随便写了一下
本文介绍了一种使用两个队列实现栈数据结构的方法。通过在两个队列间交替存放数据,实现了栈的基本操作:压栈(push)和弹栈(top),确保了其中一个队列始终为空,以便高效地进行弹栈操作。

5282

被折叠的 条评论
为什么被折叠?



