Skip to content

Stacks

A stack is a linear data structure that follows the LIFO (Last In First Out) principle.

Characteristics

  • Elements are added (pushed) and removed (popped) from the top
  • Useful for undo operations, expression evaluation, and more
  • Access is restricted to the top element only

Common Operations

Operation Description Time Complexity
push() Add an item to the top of stack O(1)
pop() Remove and return the top item O(1)
peek() View the top item without removing it O(1)
is_empty() Check if the stack is empty O(1)

Visual Representation

     ┌────┐
     │ 40 │ ← Top (Last In)
     ├────┤
     │ 30 │
     ├────┤
     │ 20 │
     ├────┤
     │ 10 │
     ├────┤
     │  5 │ ← Bottom (First In)
     └────┘

Implementation

Python's Stack class provides methods for standard stack operations with a private list for storage.

# Example usage:
stack = Stack()
stack.push(5)
stack.push(10)
element = stack.pop()  # Returns 10

Applications

  • Function call management (call stack)
  • Expression evaluation and syntax parsing
  • Undo mechanisms in text editors
  • Browser history tracking
  • Backtracking algorithms

Example Notebook

👉 See Stack Example Notebook