Showing posts with label Stack. Show all posts
Showing posts with label Stack. Show all posts

Saturday, December 21, 2013

Stack using Array

public class Stack {
    int stack[] = new int[100];
    int top = 0;
    //int ssize = 0;
   
     public void printPop(){
         System.out.println("Poppoed " + this.pop());
     }
   
    public static void main(String args[]){
        Stack s = new Stack();
        s.push(10);
        s.push(15);
        s.push(20);
        s.push(25);
        s.printStack();
        s.printPop();
        s.printPop();
        s.push(19);
        s.push(24);
        s.printStack();
        s.printPop();
        s.printPop();
        s.printPop();
        s.printPop();
        s.printStack();
    }
   
    public void push(int p){
        if(top < stack.length){
            stack[top++] = p;
        }
        //System.out.println("Top: " + top);
    }
   
    public int pop(){
        int p = -99999;
        if(top > 0)
            p = stack[--top];
        //System.out.println("Top: " + top);
        return p;
    }
   
    public void printStack(){
        System.out.print("Stack [LIFO order]: ");
        for(int i=this.top-1; i>=0; i--){
            System.out.print(stack[i] + " ");
        }
        System.out.println();
    }
}

Stack Using Linked List

public class ListStack {
    Node stack = null;
   // int top = 0;
 
     public void printPop(){
         System.out.println("Poppoed " + this.pop());
     }
   
    public static void main(String args[]){
        ListStack s = new ListStack();
        s.push(10);
        s.push(15);
        s.push(20);
        s.push(25);
        s.printStack();
        s.printPop();
        s.printPop();
        s.push(19);
        s.push(24);
        s.printStack();
        s.printPop();
        s.printPop();
        s.printPop();
        s.printPop();
        s.printStack();
    }
 
    public void push(int p){
        Node tmp = new Node(p);
        if(stack == null){
            stack = tmp;
        }else{
            tmp.next = stack;
            stack = tmp;
        }      
    }
 
    public int pop(){      
        Node tmp = null;
        if(stack != null){
            tmp = stack;
            stack = stack.next;
            return tmp.data;
        }
        return -99999;
    }
 
    public void printStack(){
        System.out.print("Stack [LIFO order]: ");
        for(Node t=stack; t != null; t=t.next){
            System.out.print(t.data + " ");
        }
        System.out.println();
    }
}