Stack is a commonly used Data Structure in programming. You can imaging a Programming Stack as similar to any real world stack. A stack of chairs, a stack of cards. What goes inside the stack first comes out last, Or what goes in a stack last comes out first.
Thus an Stack is a Last in First Out (LIFO) Structure of Data
Let’s get familiar with certain programming terms before diving into the implementation. When we put a new data element in a Stack we are doing a push, when we get the element from the stack we are doing a pull, When we are checking the top most element of stack without removing it from stack, its a peek.
Implementation in Java
Host Laravel Application on DigitalOcean
Use coupon 5balloons on this Cloudways Affiliate URL to get special discount.
Use coupon 5balloons on this Cloudways Affiliate URL to get special discount.
package info.FiveBalloons.Examples; import java.util.Arrays; public class TheStack { private String[] stackArray; private int stackSize; private int topOfStack = -1; TheStack(int stackSize){ this.stackSize = stackSize; stackArray = new String[this.stackSize]; Arrays.fill(stackArray, "-1"); } //Push operation public void push(String data){ if(topOfStack +1 < stackSize){ topOfStack++; stackArray[topOfStack] = data; System.out.println("PUSH: New data element "+data+" is pushed into stack"); }else{ System.out.println("Stack is full"); } } //Pop Operation public String pop(){ if(topOfStack >= 0){ System.out.println("POP: top data element "+stackArray[topOfStack]+" is removed from stack"); stackArray[topOfStack] = "-1"; return stackArray[topOfStack--]; }else{ System.out.println("Sorry but the stack is empty"); return "-1"; } } // Peek operation public String peek() { System.out.println("PEEK: " + stackArray[topOfStack] + " is at the top of the Stack."); return stackArray[topOfStack]; } // Using our Stack public static void main(String[] args ) { TheStack theStack = new TheStack(10); theStack.push("5Balloons"); theStack.push("Programming"); theStack.push("Tutorials"); theStack.peek(); theStack.pop(); theStack.pop(); theStack.pop(); } }
This program will produce the following output.
PUSH: New data element 5Balloons is pushed into stack
PUSH: New data element Programming is pushed into stack
PUSH: New data element Tutorials is pushed into stack
PEEK: Tutorials is at the top of the Stack.
POP: top data element Tutorials is removed from stack
POP: top data element Programming is removed from stack
POP: top data element 5Balloons is removed from stack
PUSH: New data element Programming is pushed into stack
PUSH: New data element Tutorials is pushed into stack
PEEK: Tutorials is at the top of the Stack.
POP: top data element Tutorials is removed from stack
POP: top data element Programming is removed from stack
POP: top data element 5Balloons is removed from stack