Implement the following from scratch
- Linked Lists
- Trees, Tries and Graphs
- Stacks and Queues
- Heaps
- Vectors / ArrayLists
- Hash Tables
- Breadth-First Search
- Depth-First Search
- Binary Search
- Merge Sort
- Quick Sort
- Bit Manipulation
- Memory (Stack vs. Heap)
- Recursion
- Dynamic Programming
- Big O Time and Space