I am redoing everything from ground up. The purpose is to implement data structures in C and in the process learn to steer through the varied challenges and become a better programmer.
I will be writing (most) Data Structures in C and Algorithms in C++ using STL so that the algorithm can be used as a template later on.
This will serve as a reference material for me (and others).
- Stack
- Queue
- Linked List
- Hash Table
- Binary Search Tree
- Binary Heap (heapify)
- Minimum stack
- Minimum queue
- Fenwick Tree
- Segment Tree
- B-Tree
- B+ Tree
- Graph (using adjacency list)
- Heapify (for binary heap)
- Preorder Traversal (in Binary Tree)
- Inorder Traversal (in Binary Tree)
- Postorder Traversal (in Binary Tree)
- Binary Search
- Level order Traversal (in Binary Tree, N-ary Tree)
- Breadth First Search (BFS)
- Depth First Search (DFS)
- Dijkstra - finding shortest path from given vertex
- Kadane's algorithm
- Cycle detection (using Floyd's Algorithm)
- Sieve of Eratosthenes
- Binary Exponentiation
- Minimum Spanning Tree (MST - using Prim's, Kruskal's Algorithm)
- Convex Hull
- String matching (KMP, Rabin Karp)
- Lowest Common Ancestor (LCA)
- with Binary Lifting
- Bipartite Check
- Boyer-Moore majority vote algorithm
- Generate all possible permutations
~for the love of programming