Course Outline: Data Structures and Algorithm - II
Chapter 1: Tree
1.1 Concept and Terminologies
- Definition of Trees
- Tree Terminologies (Root, Parent, Child, Sibling, Depth, Height, etc.)
- Properties of Trees
1.2 Types of Binary Trees
- Binary Tree
- Skewed Tree (Left and Right Skewed)
- Strictly Binary Tree
- Full Binary Tree
- Complete Binary Tree
- Expression Tree
- Binary Search Tree (BST)
- Heap (Min-Heap & Max-Heap)
1.3 Representation of Trees
- Static Representation (Using Arrays)
- Dynamic Representation (Using Linked Lists)
1.4 Implementation and Operations on Binary Search Tree
- Creation
- Insertion
- Deletion
- Searching
- Tree Traversals
- Preorder (Recursive)
- Inorder (Recursive)
- Postorder (Recursive)
- Level-order Traversal (Using Queue)
- Counting Nodes
- Leaf Nodes
- Non-leaf Nodes
- Total Nodes
- Copying and Mirroring a Tree
1.5 Applications of Trees
1.5.1 Heap Sort
- Concept of Heap Sort
- Implementation of Heap Sort Algorithm
1.5.2 Greedy Strategy & Huffman Encoding
- Introduction to Greedy Algorithm
- Huffman Encoding
- Concept
- Implementation Using Priority Queue
Chapter 2: Efficient Search Trees
2.1 Terminology and Types of Balanced Trees
- AVL Trees
- Red-Black Tree
- Splay Tree
- Trie (Lexical Search Tree)
2.2 AVL Tree
- Concept
- Rotations
- Left Rotation
- Right Rotation
- Left-Right Rotation
- Right-Left Rotation
2.3 Red-Black Tree
- Concept
- Insertion
- Deletion
2.4 Multi-way Search Trees
- B-Tree
- Insertion
- Deletion
- B+ Tree
- Insertion
- Deletion
Chapter 3: Graph
3.1 Concept and Terminologies
- Definition of Graphs
- Types of Graphs (Directed, Undirected, Weighted, Unweighted, etc.)
- Graph Terminologies (Vertex, Edge, Degree, Path, Cycle, etc.)
3.2 Graph Representation
- Adjacency Matrix
- Adjacency List
- Inverse Adjacency List
- Adjacency Multilist
3.3 Graph Traversals
- Breadth-First Search (BFS)
- Concept
- Implementation
- Depth-First Search (DFS)
- Concept
- Implementation
3.4 Applications of Graphs
3.4.1 Topological Sorting
- Concept
- Algorithm
3.4.2 Greedy Strategy in Minimal Spanning Trees
- Prim’s Algorithm
- Kruskal’s Algorithm
3.4.3 Single Source Shortest Path
- Dijkstra’s Algorithm
- Concept
- Implementation
3.4.4 Dynamic Programming Strategy
- All Pairs Shortest Path
- Floyd Warshall Algorithm
3.4.5 Applications of Graphs in Social Networks
- Graph-based Modeling in Social Networks
- Centrality Measures
Chapter 4: Hash Table
4.1 Concept of Hashing
- Definition and Importance of Hashing
- Comparison with Other Search Techniques
4.2 Terminologies in Hashing
- Hash Table
- Hash Function
- Bucket
- Hash Address
- Collision
- Synonym
- Overflow
4.3 Properties of a Good Hash Function
- Uniform Distribution
- Low Collision Rate
- Efficient Computation
4.4 Hash Functions
- Division Function
- Mid-Square Method
- Folding Method
4.5 Collision Resolution Techniques
4.5.1 Open Addressing
- Linear Probing
- Quadratic Probing
- Rehashing
4.5.2 Chaining
- Coalesced Chaining
- Separate Chaining