A stack is a linear data structure that follows the principle of Last In First Out (LIFO) This means the last element inserted inside the stack is removed first.
LIFO Principle of Stack:
- putting an item on top of the stack is called push.
- removing an item is called pop.
Basic Operations of Stack:
- Push: Add an element to the top of a stack.
- Pop: Remove an element from the top of a stack.
- IsEmpty: Check if the stack is empty.
- IsFull: Check if the stack is full.
- Peek: Get the value of the top element without removing it.
Working of Stack Data Structure:
- A pointer called TOP is used to keep track of the top element in the stack.
- When initializing the stack, we set its value to -1 so that we can check if the stack is empty by comparing TOP == -1.
- On pushing an element, we increase the value of TOP and place the new element in the position pointed to by TOP.
- On popping an element, we return the element pointed to by TOP and reduce its value.
- Before pushing, we check if the stack is already full.
- Before popping, we check if the stack is already empty.
So,
- empyty stack => (empty bottle) => top = -1
- stack[1] => (push = 1) => top = 0
- stack[2] => (push = 2) => top = 1
- stack[3] => (push = 3) => top = 2
- return stack[2] => (pop = 3) => top = 1
Stack Implementations in Python
"""Stack code.""" def create_stack(): """Creating a stack.""" stack = [] return stack def check_empty(stack): """Creating an empty stack.""" return len(stack) == 0 def push(stack, item): """Adding items into the stack.""" stack.append(item) print("Pushing item " + item) def pop(stack): """Removing an element from the stack.""" if check_empty(stack): """Check for empty stack.""" return "stack is empty" return stack.pop() stack = create_stack() push(stack, str(1)) push(stack, str(2)) push(stack, str(3)) push(stack, str(4)) push(stack, str(5)) print("popped item: " + pop(stack)) print("stack after popping an elements " + str(stack))
the output
Pushing item 1 Pushing item 2 Pushing item 3 Pushing item 4 Pushing item 5 popped item: 5 stack after popping an elements ['1', '2', '3', '4']
Top comments (0)