menu

DSA


DSA Introduction


What is an algorithm?
Data Structure and Types
Why learn algorithms?
Asymptotic Notations
Master Theorem
Divide and Conquer Algorithm


Data Structures (I)

Stack
Queue
Types of Queue
Circular Queue
Priority Queue
Deque

Data Structures (II)

Linked List
Linked List Operations
Types of Linked List
Hash Table
Heap Data Structure
Fibonacci Heap
Decrease Key and Delete node from Fibonacci Heap

Tree based DSA (I)

Tree Data Structure
Tree Traversal
Binary Tree
Full Binary Tree
Perfect Binary Tree
Complete Binary Tree
Balanced Binary Tree
Binary Search Tree
AVL Tree

Tree based DSA (II)

B Tree
Insertion into B-tree
Deletion from B-tree
B+ Tree
Insertion on a B+ Tree
Deletion from a B+ Tree
Red Black Tree
Insertion in Red Black Tree
Deletion from Red Black Tree

Graph based DSA

Graph Data Structure
Spanning Tree
Strongly Connected Components
Adjacency Matrix
Adjacency List
DFS Algorithm
Breadth-first Search
Bellman Ford's Algorithm

Sorting and Searching Algorithms

Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Quick Sort
Counting Sort
Radix Sort
Bucket Sort
Heap Sort
Shell Sort
Linear Search
Binary Search

Greedy Algorithms

Greedy Algorithm
Ford-Fulkerson Algorithm
Dijkstra's Algorithm
Kruskal's Algorithm
Prim's Algorithm
Huffman Code

Dynamic Programming

Dynamic Programming
Floyd Warshall Algorithm
Longest Common Subsequence

Other Algorithms

Backtracking Algorithm
Rabin-Karp Algorithm


Tutorials