Python 使用堆栈翻转抽象队列

Python 使用堆栈翻转抽象队列,python,stack,queue,abstract,Python,Stack,Queue,Abstract,为什么需要4n个调用才能在抽象堆栈的帮助下将抽象队列颠倒过来?有人愿意帮我回答这个问题吗?我假设您希望节点以原始队列结束。在这种情况下,您必须从队列中一次删除一个节点,将每个节点推到堆栈上。到目前为止,这是一次读取(从队列)和一次推送(到堆栈)。然后,您必须将节点从堆栈中弹出,并将它们放回队列中。每个节点有4个操作。不,不是,这是一个书中的问题,我不明白答案,我可以说出我的推理:抽象堆栈函数使用push或pop删除或添加向量中最顶层的元素,而抽象队列使用“先进先出”,因此,为了逆转包含n个元素的

为什么需要4n个调用才能在抽象堆栈的帮助下将抽象队列颠倒过来?有人愿意帮我回答这个问题吗?

我假设您希望节点以原始队列结束。在这种情况下,您必须从队列中一次删除一个节点,将每个节点推到堆栈上。到目前为止,这是一次读取(从队列)和一次推送(到堆栈)。然后,您必须将节点从堆栈中弹出,并将它们放回队列中。每个节点有4个操作。

不,不是,这是一个书中的问题,我不明白答案,我可以说出我的推理:抽象堆栈函数使用push或pop删除或添加向量中最顶层的元素,而抽象队列使用“先进先出”,因此,为了逆转包含n个元素的队列,需要n次调用才能使abcd成为dcba,这是错误的?我没有投反对票,也不太清楚为什么你投了这么多反对票(我不觉得这有什么不好)。然而,对于未来的帖子,有一个建议:如果你在最初的帖子中加入了你从评论中得出的理由,你可能不会得到反对票。公平地说,我也很惊讶,我对处理排队和堆积如山的问题还不熟悉,我相信人们会觉得这个问题简单得可笑,或者他们可能会认为是有人试图在不做作业的情况下找到家庭作业的解决方案,但我现在真的无法理解。再说一次,你展示的作品越多,你得到答案的机会就越大。很抱歉,你的早期经历很糟糕,但请坚持下去。这是一个很好的资源。你可能会想读这篇文章:非常感谢你的时间,它现在有意义了!