Java Program to Implement stack data structure

In this example, we will learn to implement the stack data structure in Java.

To understand this example, you should have the knowledge of the following Java programming topics:


Example 1: Java program to implement Stack

// Stack implementation in Java

class Stack {

  // store elements of stack
  private int arr[];
  // represent top of stack
  private int top;
  // total capacity of the stack
  private int capacity;

  // Creating a stack
  Stack(int size) {
    // initialize the array
    // initialize the stack variables
    arr = new int[size];
    capacity = size;
    top = -1;
  }

  // push elements to the top of stack
  public void push(int x) {
    if (isFull()) {
      System.out.println("Stack OverFlow");

      // terminates the program
      System.exit(1);
    }

    // insert element on top of stack
    System.out.println("Inserting " + x);
    arr[++top] = x;
  }

  // pop elements from top of stack
  public int pop() {

    // if stack is empty
    // no element to pop
    if (isEmpty()) {
      System.out.println("STACK EMPTY");
      // terminates the program
      System.exit(1);
    }

    // pop element from top of stack
    return arr[top--];
  }

  // return size of the stack
  public int getSize() {
    return top + 1;
  }

  // check if the stack is empty
  public Boolean isEmpty() {
    return top == -1;
  }

  // check if the stack is full
  public Boolean isFull() {
    return top == capacity - 1;
  }

  // display elements of stack
  public void printStack() {
    for (int i = 0; i <= top; i++) {
      System.out.print(arr[i] + ", ");
    }
  }

  public static void main(String[] args) {
    Stack stack = new Stack(5);

    stack.push(1);
    stack.push(2);
    stack.push(3);

    System.out.print("Stack: ");
    stack.printStack();

    // remove element from stack
    stack.pop();
    System.out.println("\nAfter popping out");
    stack.printStack();

  }
}

Output

Inserting 1
Inserting 2
Inserting 3
Stack: 1, 2, 3,  
After popping out
1, 2, 

In the above example, we have implemented the stack data structure in Java.

To learn more, visit Stack Data Structure.


Example 2: Implement stack using Stack class

Java provides a built Stack class that can be used to implement a stack.

import java.util.Stack;

class Main {
  public static void main(String[] args) {

    // create an object of Stack class
    Stack<String> animals= new Stack<>();

    // push elements to top of stack
    animals.push("Dog");
    animals.push("Horse");
    animals.push("Cat");
    System.out.println("Stack: " + animals);

    // pop element from top of stack
    animals.pop();
    System.out.println("Stack after pop: " + animals);
    }
}

Output

Stack: [Dog, Horse, Cat]
Stack after pop: [Dog, Horse]

In the above example, we have used the Stack class to implement the stack in Java. Here,

  • animals.push() - insert elements to top of the stack
  • animals.pop() - remove element from the top of the stack

Notice, we have used the angle brackets <String> while creating the stack. It represents that the stack is of the generic type.

Did you find this article helpful?