My implementations of DSA pseudo codes from the famous book "Introduction to Algorithms" by "CLRS" (Cormen, Leiserson, Rivest, Stein).
- Heap Sort
- Singly linked list
- Circular queue using arrays
- Binary Search Tree (insert, search, delete, traversals & balanced BST with sorted array)
- AVL Tree (insert, search, delete & traversals)
- Graph with Adjacency matrix
- Graph with Adjacency List
- Finding strongly connected components using finished timestamps in directed graph
- Cycle detection, cycle max nodes sum, strongly connected components in directed graph
- Common Prefixes, sorted order of strings using prefix trie
- Infix, Prefix, Postfix expression to expression tree using stack & binary trees
- Infix to Prefix, Postfix expression using stacks
- Minimum spanning trees using Kruskal's & Prim's algorithm
- Cut vertices(Articulation points) and Cut edges(Bridges) using discovery, minimum finish timestamps in a graph
- Topological sort for directed graph using DFS
- Single source shortest path for graph(positive weights) using Dijkstra's algorithm
- Single source shortest path for DAG(negative weights) using Bellman-Ford algorithm
- Single source shortest path for DAG(negative weights) using topological sort
- All pairs shortest path using Floyd-Warshall algorithm
- Quick select Kth largest element using randomization
- Merge sort a linked list with iterative & recursive merge
- Mid stack with getMid(), deleteMid() in O(1)
- Kth largest element in a running stream of numbers using heaps
- First non-repeating character in a running stream of characters(a-z) using heaps