2016-06-01 2 views
-4

Как написать метод, который при передаче массива целых чисел возвращает массив в обратном порядке, используя стек?Возвращение реверсивного массива из стека

Я полный noob на Java, пожалуйста, не спрашивайте меня о моей собственной попытке, так как я не знаю, с чего начать. Любая помощь будет принята с благодарностью.

+0

Вам повезло. Стек - Last-In-First-Out. Это действительно поддается реверсированию массивов. – Thilo

+0

@ ZephyrPellerin Нет, это не так. –

+1

Возможный дубликат [Реверсирование массива с использованием стека?] (Http://stackoverflow.com/questions/28268945/reversing-an-array-using-a-stack) –

ответ

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 (Last In First Out). Вы можете представить Stack как контейнер CD (Compact Disks). Вы кладете там несколько компакт-дисков, а затем, когда вы собираетесь их забрать, вы сначала получите компакт-диск, который вы положили последним.
В вашем случае вам просто нужно прочитать эти элементы из заданного массива и поместить их в стек один за другим. Затем просто вытащите их один за другим из Stack и поставьте в новый массив. Вы получите обратный массив.
Используйте толчок (Integer элемент) и поп() из java.util.Stack класс для ввода в и извлечение самый верхний элемент из стека.

0

Поскольку стек «последний, первый из», когда вы совать значение из стека и вставить его в новый массив будет в конечном итоге в обратном порядке.

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

тулбар значения выкл обр и добавление их в новый массив приведет:

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

Pop значения от обр используя цикл:

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

for(int i = 0; i < arr.length; i++){ 
    reverse[i] = pop(); 
} 
return reverse; 
Смежные вопросы