【问题标题】:turning an abstract queue upside down with stack用堆栈颠倒抽象队列
【发布时间】:2011-10-27 00:37:45
【问题描述】:

为什么在抽象堆栈的帮助下需要 4n 次调用才能将抽象队列倒置?有人愿意帮我解决这个问题吗?

【问题讨论】:

  • 不,不是,它是书中的一个问题,我不明白答案,到目前为止我可以说出我的推理:抽象堆栈函数删除或添加最顶层的元素vector 使用 push 或 pop,而抽象队列使用“先进先出”,因此为了反转具有 n 个元素的队列,需要 n 次调用才能使 abcd 变为 dcba,这是错误的吗?
  • 我没有投反对票,也不太清楚为什么你投了这么多票(我觉得这并不令人反感)。但是,对未来帖子的提示:如果您在原始帖子中的评论中包含您的推理,您可能不会得到反对票。
  • 公平地说,我也很惊讶,我是处理队列和堆栈的新手,我相信人们会发现这个问题非常简单,或者他们可能认为有人试图在不做作业的情况下获得解决方案工作,但我现在真的无法理解它。
  • 同样,您展示自己的作品越多,获得答案的机会就越大。抱歉,您早期的 SO 体验很糟糕,但请坚持下去。这是个很棒的资源。您可能想阅读以下内容:stackoverflow.com/questions/how-to-ask

标签: python stack queue abstract


【解决方案1】:

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

【讨论】:

  • 非常感谢您的宝贵时间,现在有意义了!
猜你喜欢
  • 2021-02-22
  • 2021-03-17
  • 2014-04-21
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 2010-11-20
  • 2012-10-10
  • 2017-06-01
相关资源
最近更新 更多