This repository documents my journey of learning data structures by implementing them from scratch in modern C++.
Rather than immediately using the C++ Standard Library, the goal is to understand how common data structures work internally, why they are designed the way they are, and the trade-offs behind each implementation.
- Develop a strong understanding of core data structures
- Learn the algorithms behind each implementation
- Practice writing clean and modern C++
- Analyze time and space complexity
- Build a solid foundation for technical interviews and software engineering
- Dynamic Arrays
- Linked Lists
- Stacks
- Queues
- Circular Queues
- Binary Trees
- Binary Search Trees
- Heaps
- Hash Tables
- Graphs
- Tries
- Searching Algorithms
- Sorting Algorithms
- Tree Traversals
- Graph Traversals (BFS & DFS)
- Recursion
- Basic Dynamic Programming
Each data structure is implemented from scratch before using its STL equivalent.
For every implementation, I aim to understand:
- The problem it solves
- How it works internally
- Time and space complexity
- Advantages and disadvantages
- Common use cases
- When an STL container would be a better choice
As the repository grows, each data structure will live in its own directory along with example programs and notes.
/
├── DynamicArray/
├── LinkedList/
├── Stack/
├── Queue/
└── README.md
This repository serves as a personal reference while preparing for data structures, algorithms, and technical interviews.
It also documents my progression from building fundamental data structures manually to understanding and effectively using the C++ Standard Library.