docs(docs): add detailed stack overview with operation examples and SVG illustrations

This commit is contained in:
Prad Nukala committed 2026-10-06 12:58:52 -04:00
1 parent 733c71d364
commit 030887c7df
3 files changed
+196

No files matched your search

@@ -3,3 +3,60 @@ title: Stack
description: 'Items are added and removed from one end, so the last item added is the first item removed.'
hidden: true
---
A stack works like a stack of plates in a cafeteria. You add new plates on top. When you need a plate, you take from the top. The last plate you added is the first one you remove.
This is **Last-In-First-Out (LIFO)**. The most recent item goes out first.
![](../../../public/stack-plates-metaphor.svg)
## Core Stack Operations
A stack has two fundamental operations:
- **Push**: add an item to the top of the stack
- **Pop**: remove the item at the top of the stack
Some stacks have additional operations:
- **Peek**: get the item at the top of the stack without removing it
- **IsEmpty**: check if the stack is empty
![](../../../public/stack-operations-sequence.svg)
```python
# Using Python list as a stack
stack = []
# Push elements
stack.append(10)
stack.append(20)
stack.append(30)
# Stack: [10, 20, 30] (30 is on top)
# Pop element
top = stack.pop() # Returns 30
# Stack: [10, 20]
# Peek at top
if stack:
top_element = stack[-1] # Returns 20 without removing
```
Python lists provide `append()` for pushing and `pop()` for popping. The `peek()` method is not built-in, but you can implement it yourself.
## Last in, First out
The defining characteristic of a stack is LIFO order. Whatever you put in last comes out first. This is different from a queue, which is First-In-First-Out (FIFO).
Add items: A, B, C
- Stack: [A, B, C] (C on top)
Remove items:
- First pop: C
- Second pop: B
- Third pop: A
The order reverses. Items come out in the opposite order they went in.