Custom implementations of common data structures in C++ to deepen understanding of STL internals, templates, and object-oriented design.
The project includes multiple implementations of Linked Lists, Dynamic Arrays, Queues, and Stacks using different design approaches.
- Insert at beginning/end
- Insert after node
- Delete nodes
- Reverse list
- Search
- Update values
- Clear list
- Random access by index
- Resize
- Insert/Delete at any position
- Reverse
- Search
- Dynamic memory management
Implemented using:
- Doubly Linked List
- Dynamic Array
Implemented using:
- Doubly Linked List
- Dynamic Array
- Templates
- Object-Oriented Programming (OOP)
- Composition
- Inheritance
- Dynamic Memory Management
- Exception Handling
- STL Design Principles
Some structures intentionally use inheritance even when composition may be a better design choice.
The goal was not only to build the data structures, but also to experiment with different design approaches and better understand their trade-offs.