data structures
Ways of organizing, storing, and accessing data so that algorithms can operate efficiently.
linear
- array: contiguous block of memory, O(1) random access
- linked list: nodes connected by pointers, O(1) insertion/deletion
- stack: last-in first-out (LIFO)
- queue: first-in first-out (FIFO)
hierarchical
- tree: nodes with parent-child relationships, binary trees, B-trees
- heap: tree satisfying the heap property, used in priority queues
- trie: prefix tree for fast string lookup
associative
- hash table: key-value storage with O(1) average lookup via hashing
- graphs: nodes and edges representing relationships, directed/undirected, weighted
graph
A graph is a set of vertices connected by edges. Foundation of knowledge graphs, neural networks, and network science. Represented as adjacency lists or adjacency matrices.
choosing
The right structure depends on access patterns: random access favors arrays, frequent insertions favor linked lists, key lookups favor hash tables, hierarchical queries favor trees. databases formalize these tradeoffs at scale.