diff --git a/src/main/java/com/thealgorithms/datastructures/stacks/README.md b/src/main/java/com/thealgorithms/datastructures/stacks/README.md index 69fc3a990383..55c3ffd7de64 100644 --- a/src/main/java/com/thealgorithms/datastructures/stacks/README.md +++ b/src/main/java/com/thealgorithms/datastructures/stacks/README.md @@ -1,10 +1,14 @@ # STACK -Stack is an ADT (abstract data type) that acts like a list of objects but there is a difference. +- Stack is an ADT (abstract data type) that is a collection of elements where items are added and removed from the end, known as the "top" of the stack. -Stack works on the principle of _LIFO_ (Last In First Out), it means that the last item added to the stack will be the first item to be removed. +- Stack works on the principle of _LIFO_ (Last In First Out), it means that the last item added to the stack will be the first item to be removed. -Stack is based on two methods (functions)- +## Declaration + `Stack stack=new Stack();` + +# Functionalities +Stack is based on two functions (methods)- ## push(element) @@ -29,3 +33,13 @@ It removes the last element (i.e. top of stack) from stack. For example: If we have `1, 3, 5 , 9` in stack, and we call pop(), the function will return `9` and the stack will change to `1, 3, 5`. + +# Real Life Applications + - `Undo mechanisms:` + Many software applications use stacks to implement an "undo" feature. + + - `Browser history:` + The "back" button in a web browser is implemented using a stack, allowing users to navigate through previously visited pages. + + - `Function calls and recursion:` + The computer's call stack keeps track of function calls, allowing programs to remember where to return after a function finishes execution.