import java.util.Stack; public class stack_methods { public static void main(String[] args) { Stack s = new Stack<>(); s.push(1); s.push(2); s.push(3); pushAtBottom(4,s); reverse(s); while(!s.isEmpty()){ System.out.println(s.peek()); s.pop(); } } public static void pushAtBottom(int data, Stack s){ if(s.isEmpty()){ s.push(data); return; } int top = s.pop(); pushAtBottom(data,s); s.push(top); } public static void reverse(Stack s){ if (s.isEmpty()){ return; } int top = s.pop(); reverse(s); pushAtBottom(top,s); } }