下面的python代码使用具有两个堆栈的队列系统。根据我的理解,在“窥视”功能期间 - 我们正在查看列表的顶部并将其返回。
def peek(self):
#looks at the top of the queue
if len(self.stack2) > 0:
top = self.stack2.pop()
self.stack2.append(top)
else:
#takes items in stack 1 and put into stack 2
while len(self.stack1) > 1:
self.stack2.append(self.stack1.pop())
top = self.stack1.pop()
self.stack2.append(top)
return top
正如您在第一个if语句条件中所看到的那样,它会执行self.stack2.pop()
并将其附加到top
。但是,.pop()
方法应该删除列表末尾的项目。为什么要将其分配给top
?我们不应该使用会删除队列中第一项的self.stack2.pop(0)
吗?