以下代码涉及队列和堆栈。它做了什么以及如何做?
public static void theCode (Queue q)
{
ListStack s = new ListStack();
while(! q.isEmpty())
s.push(q.dequeue());
while(! s.isEmpty())
q.enqueue(s.pop());
答案 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 。