当前位置: 首页 > 知识库问答 >
问题:

Reverse方法反转队列的元素

昌乐
2023-03-14

这不是HW或作业。这是我自己在练习的。

给定一个队列,编写一个反向方法来反向队列的元素。MyQueue保持不变。

签字:

public Queue<T> reverse(Queue<T> myQueue) {

注意:未知队列是使用节点还是数组生成的。

队列已经实现了一些方法,我们可以使用这些方法:

void enqueue(T element)
T dequeue();
boolean isFull();
boolean isEmpty();
int size();

共有2个答案

俞衡虑
2023-03-14

在Java是这样的:

public void reverse(Queue q)
{
    Stack s = new Stack();  //create a stack

    //while the queue is not empty
    while(!q.isEmpty())
    {  //add the elements of the queue onto a stack
       s.push(q.serve());
    } 

    //while the stack is not empty
    while(!s.isEmpty())
    { //add the elements in the stack back to the queue
      q.append(s.pop());
    }

}

队列的append和serve方法用于添加和删除该队列的元素。

队列包含以下元素:

1 2 3 4

当元素被添加到堆栈中时,数字1将位于列表的底部,而数字4将位于顶部:

1 2 3 4<-顶部

现在弹出堆栈并将元素放回队列中:

4 3 2 1

我希望这有帮助。

邹山
2023-03-14
  1. 将输入队列的元素出列到堆栈
  2. 弹出堆栈中的元素,将每个元素排入输出队列。
 类似资料:
  • 我试图编写一个递归方法来反转队列中的所有元素。 在实现队列的抽象类myQueue中 接口队列 在我的反向方法中,我的目标是不断地递归地从原始队列中退出队列(删除第一个元素),直到队列为空。每次我退出队列时,我都会将该对象放入一个临时队列中。当我的队列为空时,我将从临时队列重新排队到原始队列。 我的第一个问题是定义一个新的临时队列,在我的例子中是bufferQueue。我得到以下信息:

  • 我希望程序在输出中打印与队列内容相反的内容(使用数组提示) 我有3个类,节点,类,主 输出[70、60、55、50、40、30、20、10]

  • 我的取消排队方法目前也不会删除我想要的项,而是从集合中删除最后一个元素。例如 如果我添加元素:1,2,3我的toString方法将按预期返回1,2,3。 然后,当我使用我的驱动程序调用 dequeue 时,它应该取消第 0 个元素的排队,在本例中为 1。 尽管该方法表示“已从队列中删除元素1”,提示<code>T result 然后,当我再次调用enqueue方法时,在同一个队列上,如果我将字符串

  • Python3 列表 描述 reverse() 函数用于反向列表中元素。 语法 reverse()方法语法: list.reverse() 参数 NA。 返回值 该方法没有返回值,但是会对列表的元素进行反向排序。 实例 以下实例展示了 reverse()函数的使用方法: #!/usr/bin/python3 list1 = ['Google', 'Runoob', 'Taobao', 'B

  • 我很难理解linkedlist队列的enqueue方法的代码。我理解dequeue()、isEmpty()、First()和size()。首先,这里有一个LinearNode类来创建新的节点对象: 下面是Enqueue方法 在此编辑包含Enqueue方法的LinkQueue类:

  • 这段代码有两个问题: explext强制转换; 我想知道是否有一行的解决方案。 那么我们有没有更优雅的方法来做到这一点呢? 队列是否反向并不重要。我需要一个反转元素的int数组。