Programming Tutorials

Stack example in Java - push(), pop(), empty(), search()

By: Henry in Java Tutorials on 2007-09-14  

Stack is a subclass of Vector that implements a standard last-in, first-out stack. Stack only defines the default constructor, which creates an empty stack. Stack includes all the methods defined by Vector, and adds several of its own.

To put an object on the top of the stack, call push(). To remove and return the top element, call pop(). An EmptyStackException is thrown if you call pop() when the invoking stack is empty. You can use peek() to return, but not remove, the top object.

The empty() method returns true if nothing is on the stack. The search() method determines whether an object exists on the stack, and returns the number of pops that are required to bring it to the top of the stack. Here is an example that creates a stack, pushes several Integer objects onto it, and then pops them off again:

// Demonstrate the Stack class.
import java.util.*;

class StackDemo {
    static void showpush(Stack<Integer> st, int a) {
        st.push(Integer.valueOf(a));
        System.out.println("push(" + a + ")");
        System.out.println("stack: " + st);
    }

    static void showpop(Stack<Integer> st) {
        System.out.print("pop -> ");
        Integer a = (Integer) st.pop();
        System.out.println(a);
        System.out.println("stack: " + st);
    }

    public static void main(String args[]) {
        Stack<Integer> st = new Stack<Integer>();

        System.out.println("stack: " + st);
        showpush(st, 42);
        showpush(st, 66);
        showpush(st, 99);
        showpop(st);
        showpop(st);
        showpop(st);
        try {
            showpop(st);
        } catch (EmptyStackException e) {
            System.out.println("empty stack");
        }
    }
}

The following is the output produced by the program; notice how the exception handler for EmptyStackException is caught so that you can gracefully handle a stack underflow:

stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack





Add Comment

* Required information
1000

Comments (2)

Avatar
New
cakkasays...

how to create a simulation of java stack without using internal library ?

Avatar
New
Morgansays...

To create a simulation of a stack in Java without using internal libraries, you can create a class that implements a stack data structure. Here is an example implementation:

public class Stack {
private int maxSize; // size of stack array
private int[] stackArray;
private int top; // top of stack

public Stack(int size) {
maxSize = size;
stackArray = new int[maxSize];
top = -1;
}

public void push(int value) {
stackArray[++top] = value;
}

public int pop() {
return stackArray[top--];
}

public int peek() {
return stackArray[top];
}

public boolean isEmpty() {
return (top == -1);
}

public boolean isFull() {
return (top == maxSize - 1);
}
}

Most Viewed Articles (in Java )

Latest Articles (in Java)