Problem:
Create a java program that reverses an array in java using stacks.
Output:
90 78 40 9 6 3 1
10.5 6.9 3.2 2.5
10.5 6.9 3.2 2.5
Solution:
import java.util.Stack;
public class ReverseArrayApp {
public static void main(String[] args){
Integer[] arr1 = {1, 3, 6, 9, 40, 78, 90};
Double[] arr2 = {2.5, 3.2, 6.9, 10.5};
Number[] arr1_rev = reverse(arr1);
Number[] arr2_rev = reverse(arr2);
for(Number eltInt : arr1_rev)
System.out.print(eltInt + " ");
System.out.println();
for(Number eltDouble : arr2_rev)
System.out.print(eltDouble + " ");
}
private static Number[] reverse(Number[] arr) {
Stack<Number> temp = new Stack<>();
Number [] output = new Number[arr.length];
for(Number elt: arr)
temp.push(elt);
int index = 0;
while(!temp.empty()){
output[index] = temp.pop();
index++;
}
return output;
}
}