了解此队列和堆栈代码

时间:2015-03-16 17:28:41

标签: java stack queue reverse

以下代码涉及队列和堆栈。它做了什么以及如何做?

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

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

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

2 个答案:

答案 0 :(得分:2)

将鼠标放在队列上并堆叠标签并阅读弹出模糊信息。一个添加和删除堆栈的同一端的项目,但是(通常)队列的两端。以下是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: []

队列相反。这个过程在任何语言中都可以使用队列和堆栈类运行。

答案 1 :(得分:0)

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