This repository contains my ongoing journey through data structures and algorithms, following a structured 12-week study plan inspired by:
- Grokking Data Structures by Marcello La Rocca
- Grokking Algorithms by Aditya Bhargava
I’m using this repo to:
- Implement exercises from both books
- Write tests to validate each data structure and algorithm
- Track progress weekly as I deepen my understanding of DS & Algo concepts
If you're learning along or want to see practical code examples, feel free to explore and contribute!
Week | Topics & Books | Status |
---|---|---|
1 | Introduction + Arrays (Grokking Data Structures) | ✅ Done |
2 | Big-O + Dynamic Arrays (Grokking Data Structures) | ✅ Done |
3 | Linked Lists + Abstract Data Types (Grokking Data Structures) | ✅ Done |
4 | Stacks & Queues (Grokking Data Structures) | ✅ Done |
5 | Priority Queues + Heaps (Grokking Data Structures) | |
6 | Trees, Hash Tables, Graphs (Grokking Data Structures) | |
7 | Algorithm Basics + Sorting (Grokking Algorithms) | |
8 | Recursion + Quicksort (Grokking Algorithms) | |
9 | Hash Tables + BFS (Grokking Algorithms) | |
10 | Trees & Balanced Trees (Grokking Algorithms) | |
11 | Dijkstra + Greedy (Grokking Algorithms) | |
12 | Dynamic Programming + K-Nearest Neighbors (Grokking Algorithms) |
📖 Chapters from Grokking Data Structures — Tasks ✔️ Implemented Static Arrays and Sorted Arrays with unit tests
📖 Chapters from Grokking Data Structures — Tasks ✔️ Implemented Dynamic Arrays and Sorted Dynamic Arrays with unit tests
📖 Chapters from Grokking Data Structures — Tasks ✔️ Implemented Linked Lists and Abstract Data Types with unit tests
📖 Chapters from Grokking Data Structures — Tasks ✔️ Implemented Stacks and Queues with unit tests
(To be implemented — following the roadmap above)
/data-structures/
— Implementations of data structures/algorithms/
— Algorithm implementations/tests/
— Unit tests using VitestREADME.md
— This file
npm install
npm run test
Tests cover both correctness and performance considerations like resizing and binary search.
This repo is a personal learning project and a work in progress. If you find any issues or have suggestions, feel free to open an issue or pull request — I’d appreciate the feedback!
This project is shared under the MIT License. Feel free to use and modify the code for your own learning and projects.