This repo has extensively documented DS Algo code in C that I wrote while learning about them.
Following is the directory structure. All files have comments and references.
├───Bit Wise Operarors
│ Bit-Wise Operators.c
│ Bit-Wise Operators.exe
│
├───Data Structures
│ │ Hello World.c
│ │ Hello World.exe
│ │ practice.c
│ │
│ ├───Array
│ │ │ AAAA_ReadMe_AAAA.txt
│ │ │ Array Rotation.c
│ │ │ Array Rotation.exe
│ │ │ Negative to left.c
│ │ │ Negative to left.exe
│ │ │ Problem 1.c
│ │ │ Problem 1.o
│ │ │ Problem 2.c
│ │ │ Problem 2.exe
│ │ │ Problem 2.o
│ │ │ Problem 3.c
│ │ │ Problem 3.o
│ │ │ Problem 4.c
│ │ │ Problem 4.o
│ │ │ Problem 5.c
│ │ │ Problem 5.o
│ │ │ Problem 6.c
│ │ │ Reverse Array Elements.c
│ │ │ Two Pointers Algorithm.c
│ │ │ Two Pointers Algorithm.exe
│ │ │
│ │ └───Array Merging.c
│ │ 2-Way Merging on 1 Array.c
│ │ 2-Way Merging on 1 Array.exe
│ │ 2-Way Merging.c
│ │ 2-Way Merging.exe
│ │
│ ├───Binary Tree
│ │ │ AVL Tree.c
│ │ │ AVL Tree.exe
│ │ │ Binary Search Tree(BST).c
│ │ │ Binary Search Tree(BST).exe
│ │ │ Binary Search Tree(BST).o
│ │ │ Count Number of Nodes.c
│ │ │ Count Number of Nodes.exe
│ │ │ Expression Tree.c
│ │ │ Generating Binary Tree using Traversals.c
│ │ │ Generating Binary Tree using Traversals.exe
│ │ │ Problem 1.c
│ │ │
│ │ └───ReadMe
│ │ Notes.txt
│ │
│ ├───Disjoint Set
│ │ AAA_ReadMe_AAA.txt
│ │ Fast Union- Slow Find.c
│ │ Fast Union- Slow Find.exe
│ │
│ ├───Dynamic Memory Allocation
│ │ Malloc Function.c
│ │ Malloc Function.o
│ │
│ ├───Graph
│ │ │ Bipartite Graph.c
│ │ │ Bipartite Graph.exe
│ │ │ Counting Components in Graph.c
│ │ │ Counting Components in Graph.exe
│ │ │ Graph using Adjacency List.c
│ │ │ Graph using Adjacency List.exe
│ │ │ Graph using Adjacency Matrix.c
│ │ │ Graph using Adjacency Matrix.exe
│ │ │ Prims Minimum Spanning Tree.c
│ │ │ Single Source Shortest Path(on Trees) using DFS.c
│ │ │ Single Source Shortest Path(on Trees) using DFS.exe
│ │ │
│ │ ├───BFS
│ │ │ BFS using Adjacency List.c
│ │ │ BFS using Adjacency List.exe
│ │ │ BFS using Adjacency Matrix.c
│ │ │ BFS using Adjacency Matrix.exe
│ │ │
│ │ └───DFS
│ │ DFS using Adjacency Matrix.c
│ │ DFS using Adjacency Matrix.exe
│ │ DFS usng Adjacency List.c
│ │ DFS usng Adjacency List.exe
│ │
│ ├───Hashing
│ │ │ Double Hashing.c
│ │ │ Double Hashing.exe
│ │ │ Linear & Quadratic Probing.c
│ │ │ Linear Probing.exe
│ │ │
│ │ └───Chaining
│ │ Chaining.c
│ │ Chaining.exe
│ │ Chaining.png
│ │
│ ├───Heap
│ │ Heap Operations.c
│ │ Heapify and Heap Sort on Max Heap.c
│ │ Heapify and Heap Sort on Min Heap.c
│ │ Heapify and Heap Sort.exe
│ │ Heap_Linked_List.c
│ │ Heap_Linked_List.exe
│ │ Min Heap.exe
│ │
│ ├───Linked List
│ │ AAAA_ReadMe_AAAA.txt
│ │ Doubly Linked List.c
│ │ Doubly Linked List.exe
│ │ Doubly Linked List.o
│ │ Reverse Singly Linked LIst.c
│ │ Reverse Singly Linked LIst.exe
│ │ Reverse Singly Linked LIst.o
│ │ Single Linked List- Node Swap.c
│ │ Single Linked List- Node Swap.exe
│ │ Single Linked List- Node Swap.o
│ │ Single Linked List.c
│ │ Single Linked List.exe
│ │ Single Linked List.o
│ │
│ ├───Matrices
│ │ Diagonal Matrix.c
│ │ Diagonal Matrix.exe
│ │ Lower Triangular Matrix using 1D Array.c
│ │ Lower Triangular Matrix using 1D Array.exe
│ │ Lower Triangular Matrix using 2D Array.c
│ │ Lower Triangular Matrix using 2D Array.exe
│ │ Matrix Multiplication.c
│ │ Matrix Multiplication.exe
│ │ ReadMe.txt
│ │ Sparse Matrix.c
│ │ Sparse Matrix.exe
│ │ Tri-Diagonal Matrix.c
│ │ Tri-Diagonal Matrix.exe
│ │
│ ├───Polynomails
│ │ Polynomial Representations using Array and Strucures.c
│ │ Polynomial Representations using Array and Strucures.exe
│ │
│ ├───Queue
│ │ AAAA_ReadMe_AAAA.txt
│ │ Circular Queue using Array- Static Memory Allocation.c
│ │ Circular Queue using Array- Static Memory Allocation.exe
│ │ Circular Queue using Array- Static Memory Allocation.o
│ │ Double Ended Queue using Array- Static Memory Allocation.c
│ │ Double Ended Queue using Array- Static Memory Allocation.exe
│ │ Double Ended Queue using Array- Static Memory Allocation.o
│ │ Double Ended Queue using Doubly LInked List- Dynamic Memory Allocation.c
│ │ Double Ended Queue using Doubly LInked List- Dynamic Memory Allocation.exe
│ │ Double Ended Queue using Doubly LInked List- Dynamic Memory Allocation.o
│ │ Double Ended Queue using LInked List- Dynamic Memory Allocation.c
│ │ Double Ended Queue using LInked List- Dynamic Memory Allocation.exe
│ │ Double Ended Queue using LInked List- Dynamic Memory Allocation.o
│ │ Queue using Array- Static Memory Allocation.c
│ │ Queue using Array- Static Memory Allocation.exe
│ │ Queue using Array- Static Memory Allocation.o
│ │ Queue using Doubly Linked List- Dynamic Memory Allocation.c
│ │ Queue using Doubly Linked List- Dynamic Memory Allocation.exe
│ │ Queue using Doubly Linked List- Dynamic Memory Allocation.o
│ │ Queue using Linked List- Dynamic Memory Allocation.c
│ │ Queue using Linked List- Dynamic Memory Allocation.exe
│ │ Queue using Linked List- Dynamic Memory Allocation.o
│ │
│ ├───Recursion and Backtracking
│ │ Elfish Word.c
│ │ Factorial using Recursion2.c
│ │ Fibonacci Series using Recursion.c
│ │ Fibonacci Series using Recursion.exe
│ │ GCD using Recursion.c
│ │ Is Array Sorted.c
│ │ Multiply without opertators.c
│ │ Multiply without opertators.exe
│ │ N-Queen Problem.c
│ │ N-Queen Problem.exe
│ │ Reverse a sentence.exe
│ │ Reverse array using recursion.exe
│ │ Reverse Sentence using recursion.c
│ │ Reverse Sentence using recursion.exe
│ │ Reverse string using recursion.c
│ │ Reverse string using recursion.exe
│ │ String Compression.c
│ │ String Compression.exe
│ │ String Mingling.c
│ │ String Mingling.exe
│ │ String-O-Permute.c
│ │ Sum of N Natural Numbers.c
│ │ Sum of N Natural Numbers.exe
│ │ Tower of Hanoi.c
│ │ Tower of Hanoi.exe
│ │
│ ├───Search Algorithms
│ │ Binary Search using Loop.c
│ │ Binary Search using Recursion.c
│ │ Binary Search using Recursion.exe
│ │
│ ├───Sorting
│ │ Bin Bucket Sort.c
│ │ Bin Bucket Sort.exe
│ │ Bubble Sort.c
│ │ Bubble Sort.exe
│ │ Count Sort.c
│ │ Count Sort.exe
│ │ Heap Sort.c
│ │ Heap Sort.exe
│ │ Insertiion Sort using Linked List.c
│ │ Insertiion Sort using Linked List.exe
│ │ Insertion Sort using Array.c
│ │ Insertion Sort using Array.exe
│ │ Merge Sort- Iterative.c
│ │ Merge Sort- Iterative.exe
│ │ Merge Sort- Recursive.c
│ │ Merge Sort- Recursive.exe
│ │ Quick Sort.c
│ │ Quick Sort.exe
│ │ Selection Sort.c
│ │ Selection Sort.exe
│ │
│ ├───Stack
│ │ Balanced Parenthesis Problem.c
│ │ Balanced Parenthesis Problem.exe
│ │ Balanced Parenthesis Problem.o
│ │ Stack using Array - Static Memory Allocation.c
│ │ Stack using Array - Static Memory Allocation.exe
│ │ Stack using Array - Static Memory Allocation.o
│ │ Stack Using Doubly Linked List- Dynamic Memory Allocation.c
│ │ Stack Using Doubly Linked List- Dynamic Memory Allocation.exe
│ │ Stack Using Doubly Linked List- Dynamic Memory Allocation.o
│ │ Stack Using Singly Linked List.c
│ │ Stack Using Singly Linked List.exe
│ │ Stack Using Singly Linked List.o
│ │ Sum on n Natural Numbers using Recursion.c
│ │ Sum on n Natural Numbers using Recursion.o
│ │
│ └───Strings
│ Anagram String.c
│ Anagram String.exe
│ Change String Case.c
│ Change String Case.exe
│ Find Duplicates in Mixed Case String using Hash Table.c
│ Find Duplicates in Mixed Case String using Hash Table.exe
│ Find Duplicates in Single Case String using Hash Table.c
│ Find Duplicates in String using Hash Table.exe
│ Permutations of String.c
│ Permutations of String.exe
│ README FIRST.txt
│ Reversing String.c
│ Reversing String.exe
│ String Validation.c
│ String Validation.exe
│
├───Headers
│ Linked_List.h
│ Node.h
│ Queue.h
│ ReadMe.txt
│ Stack.h
│ Undirected_List_Graph.h
│
├───OS
│ FCFS.c
│ FCFS.exe
│ SJF.c
│ SJF.exe
│
├───Other
│ Addition & Subtraction without respective operators.c
│ CG.c
│ Even Odd without Conditional Statements.c
│ Print 1 to 100 without loop.c
│ Swap without third variable.c
│ Ternary operator without conditional statements.c
│
└───Star Patterns
Hollow Square Star Pattern with Diagonal.c
Hollow Square Star Pattern with Diagonal.exe
Hollow Square Star Pattern with Diagonal.o
Hollow Square Star Pattern.c
Hollow Square Star Pattern.exe
Hollow Square Star Pattern.o