Fundamental Data Structures

Core abstractions of computer science — algorithms, motivations, and real-world applications, ordered by increasing complexity

Linear Structures
O(1) access
Array
Contiguous block of elements addressable by index. The foundation of nearly all other structures.
Access O(1) Search O(n) Insert O(n) Delete O(n)
O(1) insert
Linked List
Nodes connected by pointers. Constant-time insertion/deletion at known positions without shifting.
Access O(n) Search O(n) Insert O(1) Delete O(1)
LIFO
Stack
Last-in, first-out discipline. Push and pop from one end only. Models function call frames and undo history.
Push O(1) Pop O(1) Peek O(1)
FIFO
Queue
First-in, first-out discipline. Enqueue at the back, dequeue from the front. Natural model for waiting lines and BFS.
Enqueue O(1) Dequeue O(1) Peek O(1)
Tree Structures
O(log n) avg
🌲
Binary Search Tree
Ordered binary tree where left < parent < right. Fast search, insert, and delete on average-case data.
Search O(log n) Insert O(log n) Delete O(log n) Worst O(n)
O(log n) worst
Balanced BST (AVL / Red-Black)
Self-balancing trees that guarantee O(log n) in the worst case by maintaining height invariants via rotations.
Search O(log n) Insert O(log n) Delete O(log n)
O(log n) push/pop
Heap (Priority Queue)
Complete binary tree satisfying the heap property. O(1) access to the min or max element; O(log n) insertion.
Peek O(1) Push O(log n) Pop O(log n) Build O(n)
O(k) per op
Trie (Prefix Tree)
Tree where each edge is a character. Lookup time is proportional to key length, not corpus size. Ideal for autocomplete.
Insert O(k) Search O(k) Prefix O(k)
Hash Tables & Graphs
O(1) avg
#
Hash Table
Maps keys to array indices via a hash function. Expected O(1) insert, lookup, and delete — the workhorse of fast lookup.
Insert O(1) avg Lookup O(1) avg Delete O(1) avg Worst O(n)
V + E
Graph
Vertices connected by edges. Directed or undirected, weighted or unweighted. Models relationships, networks, and dependencies.
BFS O(V+E) DFS O(V+E) Dijkstra O((V+E)log V)
Advanced & Probabilistic Structures
≈ O(α(n))
Disjoint Set (Union-Find)
Tracks a partition of elements into disjoint groups. Near-constant amortised time with union-by-rank and path compression.
Find O(α(n)) Union O(α(n))
O(k) · no FN
~
Bloom Filter
Probabilistic set membership test. Space-efficient: no false negatives; small, tunable false-positive rate.
Insert O(k) Query O(k) Space O(m bits)
O(log n) expected
Skip List
Randomised multi-level linked list. Provides sorted access with O(log n) expected operations — no rotations needed.
Search O(log n) Insert O(log n) Delete O(log n)
Click any card to explore the full algorithm, motivation, and real-world application examples.