A comprehensive collection of fundamental data structures and algorithms implemented in C.
Implementation of various linked list data structures.
- Singly Linked List
- Doubly Linked List
- Circular Linked List
LIFO (Last In First Out) data structure implementations.
- Array-based Stack
- Linked List-based Stack
FIFO (First In First Out) data structure implementations.
- Array-based Queue
- Linked List-based Queue
- Circular Queue
- Double-Ended Queue (Deque)
Binary tree data structures with various properties.
- Binary Search Tree (BST)
- AVL Tree (Self-balancing BST)
Complete binary tree implementations maintaining heap property.
- Max Heap
- Min Heap
Hash table implementations with different collision resolution techniques.
- Linear Probing
- Quadratic Probing
- Double Hashing
- Chaining
Algorithms for visiting all vertices in a graph.
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
Algorithms for finding minimum spanning tree of a weighted graph.
- Kruskal's Algorithm
- Prim's Algorithm
Algorithms for finding shortest paths in weighted graphs.
- Dijkstra's Algorithm
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
Algorithms for finding elements in a collection.
- Linear Search
- Binary Search
Algorithms for arranging elements in order.
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
Algorithms for finding pattern occurrences in text.
- Naive String Matching
- Knuth-Morris-Pratt (KMP) Algorithm
All programs are written in C and can be compiled using:
gcc filename.c -o output
./outputEach subdirectory contains:
- Implementation files (.c)
- README with detailed explanations, complexity analysis, and use cases
Navigate to any subdirectory and refer to its README for specific details about the implementations.
This project is for educational purposes.