【问题标题】:Understanding this queue and stack code了解此队列和堆栈代码
【发布时间】:2015-03-16 17:28:40
【问题描述】:

以下代码涉及队列和堆栈。它有什么作用以及如何做的?

public static void theCode (Queue q)
{
   ListStack s = new ListStack();

   while(! q.isEmpty())
       s.push(q.dequeue());

   while(! s.isEmpty())
       q.enqueue(s.pop());

【问题讨论】:

  • 你想完成这个问题吗?
  • 它反转队列。
  • 具体有什么不明白的地方?
  • 这就是全部,
  • 我不完全理解这个方法是如何工作的

标签: java stack queue reverse


【解决方案1】:

将鼠标放在队列和堆栈标签上,然后阅读弹出式广告。一个从堆栈的同一端添加和删除项目,但(通常)在队列的相反端。这是一个 3 elememt 队列的步骤示例,一次移动一个项目。

Q: [1,2,3];  S: []
Q: [2,3];  S: [1]
Q: [3];  S: [1,2]
Q: [];  S: [1,2,3]
Q: [3];  S: [1,2]
Q: [3,2];  S: [1]
Q: [3,2,1];  S: []

队列颠倒了。在任何具有队列和堆栈类的语言中,此过程的操作都是相同的。

【讨论】:

  • 嗨特里!关注我在 51 区的proposal,以创建一个完全致力于tkinter/ttk 的网站。
【解决方案2】:

我在 API 中找不到这个 ListStack 类。但是,此方法看起来像是在尝试遍历给定的队列(参数中指定的 q)并将内容复制到 ListStack s。

【讨论】:

    猜你喜欢
    • 2014-06-11
    • 2013-09-18
    • 2017-01-20
    • 2018-05-30
    • 2014-07-21
    • 2015-11-16
    • 2019-03-07
    • 2021-04-29
    • 1970-01-01
    相关资源
    最近更新 更多