# Data Structure & Algorithm

### DSA Introduction

• What is an algorithm?
• 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 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
• DFS Algorithm
• Bellman Ford’s Algorithm

### Sorting and Searching Algorithms

• Bubble Sort
• Selection Sort
• Insertion Sort
• Merge Sort
• Quick Sort
• Counting 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