reversing a Stack
import java.util.*;
public class Reverse_A_Stack {
public static boolean isEmpty(Stack<Integer> s) {
return s.size() == 0;
}
public static void print(Stack<Integer> s) {
while (!s.isEmpty()) {
System.out.println(s.pop());
}
}
public static void PushAtBottom(Stack<Integer> s, int data) {
if (s.isEmpty()) {
s.push(data);
return;
}
int top = s.pop();
PushAtBottom(s, data);
s.push(top);
}
public static void Reverse(Stack<Integer> s) {
if (s.isEmpty()) {
return;
}
int top = s.pop();
Reverse(s);
PushAtBottom(s, top);
}
public static void main(String[] args) {
Stack<Integer> s = new Stack<>();
s.push(1);
s.push(2);
s.push(3);
// 3 2 1
Reverse(s);
print(s);
// 1 2 3
}
}
Comments
Post a Comment