Learn how data structures work and how to use them in code. Start with language-agnostic theory, then use the language guides to practice basic operations.
- Start with Big-O notation to understand time and space complexity.
- Read a chapter's
README.mdfor the structure, its operations, tradeoffs, and complexity. - Open a language guide for usage examples and basic exercises. Try the exercises before opening their solutions.
Each chapter keeps language guides alongside its theory README, with no separate exercises directory. For example:
01-arrays/
├── README.md
├── c_arrays.md
├── cpp_arrays.md
└── python_arrays.md
| Chapter | Theory | Language guides |
|---|---|---|
| 00 | Big-O Notation | C · C++ · Python |
| 01 | Arrays | C · C++ · Python |
| 02 | Linked Lists | C · C++ |
| 03 | Stacks | C · C++ |
| 04 | Queues | C · C++ |
| 05 | Hash Tables | C · C++ |
| 06 | Trees | C · C++ |
| 07 | Heaps | C · C++ |
| 08 | Graphs | C · C++ |
Algorithm topics are organized into language-specific lessons, each with a worked example, infographic, implementation, complexity analysis, and exercises with hidden solutions. Explanations live directly in each language file; there is no separate topic README. C++17 lessons are currently available, with other languages planned.
