Topics
Linked List
- Linked List Template
- Singly Linked List
- Doubly Linked List
Stack
- Stack using Python List
- Stack using Linked List
- Infix to Postfix expression
- Infix to Prefix expression
- Postfix to Infix expression
- Prefix to Infix expression
- Evaluation of Postfix expression
- Evaluation of Prefix expression
Queue
- Linear Queue using Python List
- Linear Queue using Linked List
- Double Ended Queue using Python List
- Double Ended Queue using Doubly Linked List
- Circular Queue using Python List
- Circular Queue using Circular Linked List
- Circular Double Ended Queue using Doubly Linked List
Tree
- General Binary Tree
- Building Simple Binary Tree from user input
- Binary Tree Types
- Full or Proper Binary Tree
- Perfect Binary Tree
- Complete Binary Tree
- Balanced Binary Trees
- Binary Search Tree
- AVL Tree
- Depth First Traversals (Inorder, Preorder and Postorder)
- Level Order Binary Tree Traversal
Heap
- Understanding Heaps using heapq in Python
- Binary Heap using heapq
- Binary Heap implementation using Python List
- Max Heap
- Min Heap
Disjoint Set Union Find
- Disjoint Set Union Find Naive
- Disjoint Set Union Find Optimized
Graph
- Graph representation using Adjacency Matrix
- Graph representation using Adjacency List
- Graph Traversals
- Depth First Traversal
- Breadth First Traversal
- Types of edges in graph using DFS
- Detect cycle in directed graph using dfs
- Detect cycle in undirected graph using bfs
- Detect cycle in undirected graph using dfs
- Detect cycle in undirected graph using disjoint set
- Minimum Spanning Tree using Kruskal's Algorithm
- Minimum Spanning Tree using Prim's Algorithm
- Minimum Spanning Tree using Prim's Algorithm using Priority Queue
- Topological Sorting
- Topological Sorting using Kahn's Algorithm
- Connected Components
- Bridges in graph
- Articulation point in graph
- Dijkstra's Single Source Shortest Path Algorithm Naive implementation
Searching Algorithms
- Linear Search
- Binary Search
Sorting Algorithms
- Insertion Sort
- Selection Sort
- Bubble Sort
- Merge Sort
- Quick Sort
Recursion
- Recursion overview/template
- Factorial
- Power of 2
- Print Count
- Say Digit
- Fibonacci Number
- Bubble Sort
Dynamic Programming (Recursion, Recursion + Memoization, Tabulation, Tabulation + Space Optimization)
- Fibonacci Series
- Nth Stairs
- Minimum Cost climbing stairs
- Coin change
To-do
General
Circular Linked List
Doubly Linked List
Doubly Circular Linked List
Stack
Queue
Tree
Graph
Sorting Algorithms
Recursion
Divide & Conquer
Branch & Bound
Trie
Back to top