从堆栈返回反向数组

时间:2016-06-01 03:23:39

标签: java stack

如何编写一个方法,在传递整数数组时,使用堆栈返回数组?

我是Java的总菜鸟请不要问我自己的尝试,因为我不知道从哪里开始。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

将您视为Java和数据结构的初学者 Stack是一种适用于LIFO(后进先出)原理的数据结构。你可以把Stack想象成CD(Compact Disks)的容器。你把一些CD放在那里,然后当你要取出它们时,你首先得到你最后放的CD。
在您的情况下,您只需要从给定的数组中读取这些项目并将它们逐个放入堆栈中。然后只需从堆栈中逐个获取它们并放入一个新数组。你将获得反向阵列 使用 push(整数项) java.util.Stack 类的 pop()来放入和获取Stack中最顶层的项目

答案 1 :(得分:0)

Stack<Integer> stack = new Stack<>();
for (int i = 0; i < array.length; i++) {
    stack.push(array[i]);
}
for (int i = 0; i < array.length; i++) {
    array[i] = stack.pop();
}

答案 2 :(得分:0)

因为堆栈是&#34;后进,先出&#34;,当您从堆栈中弹出一个值并将其插入新数组时,它将以相反的顺序结束。

int[] arr = {1, 2, 3, 4, 5};

从arr弹出值并将它们添加到新数组将导致:

reverse = {5, 4, 3, 2, 1};

使用for循环从arr中弹出值:

int[] reverse = new int[arr.length];

for(int i = 0; i < arr.length; i++){
    reverse[i] = pop();
}
return reverse;