Data Structures and Algorithm
Please leave a remark at the bottom of each page with your useful suggestion.
Introduction
- Linked List
- Single Linked list
- Circular Linked list
- Doubly Linked List
- Stacks
- Stack using Array
- Stack using Linked List
- Queues
- Queue using Array
- Queue using Linked List
- Priority Queue
- Circular Queue
- Double Ended Queue - DeQueue
- Trees
- Generic Tree
- Binary Tree
- Binary Search Tree
- Tree Traversal (In-order, pre-order, post-order)
- Trie (Simple insert and search operation)
- Heaps
- Min Heap
- Max Heap
- Graph
- BFS
- Bellman Ford Algorithm
- DFS
- Dijkstra
- Floyd Warshall
- Kruksal
- Prim Minimum Spanning tree
- Topological Sorting
- Sorting
- Bubble sort
- Bubble Sort with improvements
- Bucket sort
- Heap Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Radix Sort
- Selection Sort
- Searching
- BFS
- Binary Search (Iterative)
- Binary Search (Recursive)
- DFS
- DFS using Stack
- Exponential Search
- Interpolation Search
- Repetitive Binary Search
- Dynamic Programming and Others
- Sudoku (Backtracking)
- Collaborative Filtering
- DNA Sequencing (NeedlemanWunsch Algorithm)
- 0/1 KnapSack Dynamic Programming
- Fibonacci (Recursive)
- Fibonacci (Memoized)
- Huffman Encoding (Greedy Algorithm)
- Job Scheduler (Greedy Algorithm)
- KMP String matching algorithm
- Longest Common Subsequences (LCS)
- Pattern Matching
- Sparse Array