-4
A
回答
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();
}
0
考虑到你是Java和数据结构的初学者。
栈是一种数据结构,它工作于LIFO(后进先出)原理。您可以将堆栈想象成CD(Compact Disks)的容器。你在那里放了一些CD,然后当你准备接收它们时,你首先得到放在最后的CD。
就你而言,你只需从给定的数组中读取这些项目,并将它们逐个放入堆栈。然后简单地从堆栈中逐个获取它们并放入一个新数组中。你会得到相反的数组。
使用推(整数项)和pop()方法的 java.util.Stack中类从堆栈投入和获取最顶端项。
0
因为堆栈是“后进先出”,所以当您从栈中弹出一个值并将其插入到一个新数组中时,它将以相反的顺序结束。
int[] arr = {1, 2, 3, 4, 5};
坡平掉ARR并将其添加到一个新的数组值将导致:
reverse = {5, 4, 3, 2, 1};
弹出出值ARR使用for循环:
int[] reverse = new int[arr.length];
for(int i = 0; i < arr.length; i++){
reverse[i] = pop();
}
return reverse;
你很幸运。一个堆栈是后进先出。这真的适合倒序阵列。 – Thilo
@ZephyrPellerin不,它不是。 –
[使用堆栈倒置数组?]可能的重复(http://stackoverflow.com/questions/28268945/reversing-an-array-using-a-stack) –