DSA (Data structures & Algorithms) Learning
This repository contains multiple implementations of data structures and algorithms in C (and potentially in OCaml in the future). It serves as a record of my progress, in case I need to reference it, and could be useful for anyone interested in learning data structures and algorithms.
For each data structure or algorithm, you will find a list of three LeetCode exercises (Easy-Medium-Hard) and one exercise that demonstrates a real use case of this data structure/algorithm. Please note that these exercises were generated with ChatGPT; hence, some of them might not be relevant.
DSA roadmap
Here is the list of all data structures and algorithms this repository will contain, it follows Programiz course order on DSA :
Data Structures (1)
- Stack
- Queue
- Circular queue
- Priority queue
- Deque
Data Structures (2)
- Linked List
- Hash Table
- Heap
- Fibonacci Heap
Tree DSA (1)
- Tree
- Binary Tree
- Full Binary Tree
- Perfect Binary Tree
- Complete Binary Tree
- Balanced Binary Tree
- Binary Search Tree
- AVL Tree
Tree DSA (2)
- B Tree
- B+ Tree
- Red Black Tree
Graph Algorithms
- Graph
- Spanning Tree
- Strongly Connected Components
- Adjacency Matrix
- Adjacency List
- DFS Algorithm
- Breadth-first Search
- Bellman Ford's Algorithm
Searching and Sorting Algorithms
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Counting Sort
- Radix Sort
- Bucket Sort
- Heap Sort
- Shell Sort
- Linear Search
- Binary Search
Greedy Algorithms
- Greedy Algorithm
- Ford-Fulkerson Algorithm
- Dijkstra's Algorithm
- Kruskal's Algorithm
- Prim's Algorithm
- Huffman Code
Dynamic Programming (DP)
- DP
- Floyd Marshall Algorithm
- Longest Common Subsequence
Others
- Backtracking Algorithm
- Rabin-Karp Algorithm
- Sliding Window
- Bit Manipulation