I made this repository to post my code and document my progress while Learning Data Structures and Algorithms Concepts
-
Introduction to Algorithms, 3rd Edition by thomas h. cormen
-
Introduction to Algorithms, 2rd Edition by thomas h. cormen
-
Data Structures Through C In Depth By. Sk Srivastava
Asymptotic Analysis
Asymptotic Notations
Theta Notation (Θ-notation)
Big-O Notation (O-notation)
Omega Notation (Ω-notation)
Master Theorem
Divide and Conquer Algorithm
A one-dimensional array (or single dimension array)
Two-dimensional Arrays
Multi-dimensional Arrays
Singly Linked List
Doubly Linked List
Circular linked list
Doubly Circular Linked List
Stack Data Structure Array Implementation
Stack Data Structure linked list Implementation
Infix to Postfix Expression using STACK Data Structure
Infix to Prefix Expression using Stack Data Structure
Pretfix to Infix Expression using STACK Data Structure
Postfix to Prefix Expression using STACK Data Structure
Prefix to Postfix Expression using STACK Data Structure
Queue Data Structure Array Implementation (FIFO)
Queue Data Structure linked list Implementation(FIFO)
Queue Data Structure Stack Implementation (FIFO)
Circular Queue Data Structure Array Implementation
Circular Queue Data Structure linkedlist Implementation
Deque (Double Ended Queue)
Double Ended Queue Circular Array Implementation
A priority Queue Implementation Using A Min-Heap
A priority Queue Implementation Using A Max-Heap
Path compression Union by Rank
Bubble Sort Algorithm
Selection Sort Algorithm
Insertion Sort Algorithm
Merge Sort Algorithm
Quicksort Algorithm
Counting Sort Algorithm
Radix Sort Algorithm
Bucket Sort Algorithm
Shell Sort Algorithm
Heap Sort Algorithm
A Min-Heap Sort Algorithm
A Max-Heap Sort Algorithm
Graph Topological Sort
Bitonic Sort Cocktail Sort Cycle Sort Gnome Sort LSDRadix Sort Algorithm Postman Sort Tim-sort pigeonhole-sort COMB SORT
Linear Search
Binary Search
Direct Address Table
Hash Table and Hash Function Array Implementation
Hash Tables Separate Chaining With Doubly Linked Lists
Hash Table Separate Chaining With Singly Linked Lists
Hash Table with Chaining (Dictionary Speller Checker )
Hash Table Implementation with Linear Probing (Hashing)
Hash Table Implementation with Quadratic Probing
Hash Table Implementation with Double Hashing
Cryptographic Hashing
Tree Traversal - inorder, preorder and postorder
Binary Tree
Full Binary Tree
Perfect Binary Tree
Complete Binary Tree
Balanced Binary Tree
Binary Search Tree(BST)
AVL Tree
Insertion in a Red-Black Tree
Deletion From a Red-Black Tree
Insertion in Splay Tree
Deletion From Splay Tree (Top Down Splaying)
Deletion From Splay Tree (Bottom-up Splaying)
Insertion into a B-tree(CODE TODO)
Deletion from a B-tree (CODE TODO)
Insertion on a B+ Tree (CODE TODO)
Insertion on a B+ Tree (CODE TODO)
Graph Data Stucture
Graph Adjacency list Representation
Graph Adjacency Matrix Representation
Depth First Search Implementation (DFS Algorithm)
Breadth first Search Implementation (BFS Algorithm)
Spanning Tree and Minimum Spanning Tree
Topological Sorting
Types of edges in DFS | Edge classification
Strongly Connected Components (CODE TODO)
Bellman Ford's Algorithm
Detect Cycle in Directed Graph
Detect Cycle in Undirected Graph
Kruskal's Algorithm
Prim's Algorithm
Ford-Fulkerson Algorithm
Dijkstra's Algorithm
Huffman Coding
Coin Change Problem Number Coin Change Problem: Minimum number of coins Dynamic Programming
Floyd-Warshall Algorithm
Longest Common Subsequence
Traveling Salesman Problem using Dynamic Programming
0/1 knapsack problem-Dynamic Programming
Fractional Knapsack Problem using Greedy Method
Subset Sum Problem using Dynamic Programming
Backtracking Algorithm
Rabin-Karp Algorithm
Algorithms, Part I
https://www.coursera.org/learn/algorithms-part1
Algorithms, Part II
https://www.coursera.org/learn/algorithms-part2
https://www.coursera.org/specializations/algorithms
Divide and Conquer, Sorting and Searching, and Randomized Algorithms
https://www.coursera.org/learn/algorithms-divide-conquer
Graph Search, Shortest Paths, and Data Structures
https://www.coursera.org/learn/algorithms-graphs-data-structures
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
https://www.coursera.org/learn/algorithms-greedy
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them