Welcome to my repository dedicated to practicing and learning C++ through the implementation of various data structures and algorithms. This repository serves as a resource for anyone interested in enhancing their C++ skills and understanding fundamental concepts in computer science.
This repository contains implementations of various data structures and algorithms in C++. Each implementation is accompanied by thorough documentation and test cases to ensure reliability and understanding.
Here is a list of the data structures that are (or will be) implemented:
- Dynamic Array (Array List)
- Linked List
- Doubly Linked List
- Stack
- Queue
- Priority Queue (Heap)
- Union Find
- Binary Search Tree
- Hash Table
- Fenwick Tree
- AVL Tree
This section includes a variety of algorithms, focusing on:
- Merge Sort
- Quick Sort
- Binary Search
- Sliding Window Fixed Size
- Sliding Window Variable Size
- In-Order Traversal
- Pre-Order Traversal
- Post-Order Traversal
- Level-Order Traversal
- Breadth First Search (BFS)
- Depth First Search (DFS)
- Dijkstra's Shortest Path
- Floyd Warshall Shortest Path
- Bellman-Ford Shortest Path
- Kruskal's Minimum Spanning Tree
- Matrix Multiplication
- Rabin-Karp for String Matching
- Prefix function Kunth-Morris-Pratt
- Aho-Corasick
Each data structure and algorithm is accompanied by a set of unit tests to ensure correctness and performance. The tests are written using Google Test or a similar framework.
This project is licensed under the MIT License - see the LICENSE file for details.