Stack Reverse Order Display Data with recursive method call

package com.kartik;

import java.util.Stack;

public class StackReversalString
{

    public static void stackReversal(Stack<String> s)
    {
        if(s.size() == 0) return;
        String n = getLast(s);
        stackReversal(s);
        s.push(n);
       
        while(s.size() > 0)
        {
            System.out.println(s.pop());
        }
    }

    public static String getLast(Stack<String> s)
    {
        String a = s.pop();
        if(s.size() == 0)
        {
            return a;
        }
        else
        {
            String k = getLast(s);
            s.push(a);
            return k;
        }
    }

    public static void main(String[] args)
    {
        Stack <String> stack = new Stack <String> ();
        stack.push("Kartik");
        stack.push("Chandra");
        stack.push("Mandal");
        stack.push("Java");
        stack.push("J2EE");
        stack.push("Soap");
        stack.push("Rest");
        stackReversal(stack);
    }
}


Out Put :
Rest
Soap
J2EE
Java
Mandal
Chandra
Kartik


Below Code For Integer Only:
package com.kartik;

import java.util.Stack;

public class StackReversalInteger
{

    public static void stackReversal(Stack<Integer> s)
    {
        if(s.size() == 0) return;
        int n = getLast(s);
        stackReversal(s);
        s.push(n);
       
        while(s.size() > 0)
        {
            System.out.println(s.pop());
        }
    }

    public static int getLast(Stack<Integer> s)
    {
        int a = s.pop();
        if(s.size() == 0)
        {
            return a;
        }
        else
        {
            int k = getLast(s);
            s.push(a);
            return k;
        }
    }

    public static void main(String[] args)
    {
        Stack <Integer> stack = new Stack <Integer> ();
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);
        stack.push(9);
        stack.push(5);
        stack.push(8);
        stackReversal(stack);
        /*while(stack.size() > 0)
        {
            System.out.println(stack.pop());
        }*/
    }
}


Out Put:
8
5
9
4
3
2
1



Previous
Next Post »