This repository contains implementations in C++20 of the following data structures: Single Linked Lists, Double Linked Lists, Circular Linked Lists, Stacks, Queues, Binary Trees, Binary Search Trees, AVL Trees, Splay Trees, Heaps, Hash Tables, and Graphs.
Every data structure is implemented as template classes and are stored in their own folder. A brief documentation of each can be found inside the markdown files inside Linear, Non Linear, and Abstract Data Structures folders.
Each class uses smart pointers to manage memory. Also, each class has a to_string()
method (as well as overloading the <<
operator or equivalent menthods) that prints the data structure in a human readable format. Lastly, each function has a brief description of what it does, the time complexity and space complexity of the function.
The documentation is written in Markdown and the source code is written in C++20. The documentation is generated using Doxygen and the source code is compiled using GCC.
Implementation of the linear data structures is in the LinearDataStructures
folder.
Implementation of the non linear data structures is in the NonLinearDataStructures
folder.
Implementation of the abstract data types is in the AbstractDataStructures
folder.