In this example, we will learn to implement the stack data structure in Java.
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.
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.