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.
Here is the list of all data structures and algorithms this repository will contain, it follows Programiz course order on DSA :
- Stack
- Queue
- Circular queue
- Priority queue
- Deque
- Linked List
- Hash Table
- Heap
- Fibonacci Heap
- Tree
- Binary Tree
- Full Binary Tree
- Perfect Binary Tree
- Complete Binary Tree
- Balanced Binary Tree
- Binary Search Tree
- AVL Tree
- B Tree
- B+ Tree
- Red Black Tree
- Graph
- Spanning Tree
- Strongly Connected Components
- Adjacency Matrix
- Adjacency List
- DFS Algorithm
- Breadth-first Search
- Bellman Ford's Algorithm
- 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 Algorithm
- Ford-Fulkerson Algorithm
- Dijkstra's Algorithm
- Kruskal's Algorithm
- Prim's Algorithm
- Huffman Code
- DP
- Floyd Marshall Algorithm
- Longest Common Subsequence
- Backtracking Algorithm
- Rabin-Karp Algorithm
- Sliding Window
- Bit Manipulation