Classic:
- [[Asymptotic Analysis]]
- [[Sorting]]
- [[Arrays]]
- [[Hashmaps]]
- [[Sets]]
- [[Linked Lists]]
- [[Stacks]]
- [[Queues]]
- [[Monotonic]]
- [[Trees]]
- [[Graphs]]
- [[Union ]]
- [[Heaps]]
- [[Greedy Algorithms]]
- [[Binary Search]]
- [[Ternary Search]]
- [[Backtracking]]
- [[Dynamic Programming]]
- [[Range Query Algorithms]]
- [[Bit Manipulation Algorithms]]
- [[Spanning Tree Algorithms]]
- [[Strong Connectivity Algorithms]]
- [[Topological Sort]]
- [[Sparse Tables]]
- [[Tries]]
- [[Algorithm Cases To Check]]
- [[Unordered Data Structures]]
Specialized:
- [[Operational Transform]]
- a data structure is a format for organizing data efficiently
- data structures can be split into 2 things
1. interface
- contract that specifies how we can interact with the data structure
- i.e what operations we can perform on it, what inputs it expects, what outputs we can expect
2. implementation
- the code that makes the data structure actually work
- i.e for arrays, it'd be allocating memory for the list, tracking the size, rearranging the elements when an interface operation is called
- but for algorithms we only have to understand how to use the interface
https://cses.fi/book/book.pdf