Course Outline: Data Structures and Algorithm - II

Chapter 1: Tree

1.1 Concept and Terminologies
  1. Definition of Trees
  2. Tree Terminologies (Root, Parent, Child, Sibling, Depth, Height, etc.)
  3. Properties of Trees
1.2 Types of Binary Trees
  1. Binary Tree
  2. Skewed Tree (Left and Right Skewed)
  3. Strictly Binary Tree
  4. Full Binary Tree
  5. Complete Binary Tree
  6. Expression Tree
  7. Binary Search Tree (BST)
  8. Heap (Min-Heap & Max-Heap)
1.3 Representation of Trees
  1. Static Representation (Using Arrays)
  2. Dynamic Representation (Using Linked Lists)
1.4 Implementation and Operations on Binary Search Tree
  1. Creation
  2. Insertion
  3. Deletion
  4. Searching
  5. Tree Traversals
    • Preorder (Recursive)
    • Inorder (Recursive)
    • Postorder (Recursive)
    • Level-order Traversal (Using Queue)
  6. Counting Nodes
    • Leaf Nodes
    • Non-leaf Nodes
    • Total Nodes
  7. Copying and Mirroring a Tree
1.5 Applications of Trees
1.5.1 Heap Sort
  1. Concept of Heap Sort
  2. Implementation of Heap Sort Algorithm
1.5.2 Greedy Strategy & Huffman Encoding
  1. Introduction to Greedy Algorithm
  2. Huffman Encoding
    • Concept
    • Implementation Using Priority Queue

Chapter 2: Efficient Search Trees

2.1 Terminology and Types of Balanced Trees
  1. AVL Trees
  2. Red-Black Tree
  3. Splay Tree
  4. Trie (Lexical Search Tree)
2.2 AVL Tree
  1. Concept
  2. Rotations
    • Left Rotation
    • Right Rotation
    • Left-Right Rotation
    • Right-Left Rotation
2.3 Red-Black Tree
  1. Concept
  2. Insertion
  3. Deletion
2.4 Multi-way Search Trees
  1. B-Tree
    • Insertion
    • Deletion
  2. B+ Tree
    • Insertion
    • Deletion

Chapter 3: Graph

3.1 Concept and Terminologies
  1. Definition of Graphs
  2. Types of Graphs (Directed, Undirected, Weighted, Unweighted, etc.)
  3. Graph Terminologies (Vertex, Edge, Degree, Path, Cycle, etc.)
3.2 Graph Representation
  1. Adjacency Matrix
  2. Adjacency List
  3. Inverse Adjacency List
  4. Adjacency Multilist
3.3 Graph Traversals
  1. Breadth-First Search (BFS)
    • Concept
    • Implementation
  2. Depth-First Search (DFS)
    • Concept
    • Implementation
3.4 Applications of Graphs
3.4.1 Topological Sorting
  1. Concept
  2. Algorithm
3.4.2 Greedy Strategy in Minimal Spanning Trees
  1. Prim’s Algorithm
  2. Kruskal’s Algorithm
3.4.3 Single Source Shortest Path
  1. Dijkstra’s Algorithm
    • Concept
    • Implementation
3.4.4 Dynamic Programming Strategy
  1. All Pairs Shortest Path
    • Floyd Warshall Algorithm
3.4.5 Applications of Graphs in Social Networks
  1. Graph-based Modeling in Social Networks
  2. Centrality Measures

Chapter 4: Hash Table

4.1 Concept of Hashing
  1. Definition and Importance of Hashing
  2. Comparison with Other Search Techniques
4.2 Terminologies in Hashing
  1. Hash Table
  2. Hash Function
  3. Bucket
  4. Hash Address
  5. Collision
  6. Synonym
  7. Overflow
4.3 Properties of a Good Hash Function
  1. Uniform Distribution
  2. Low Collision Rate
  3. Efficient Computation
4.4 Hash Functions
  1. Division Function
  2. Mid-Square Method
  3. Folding Method
4.5 Collision Resolution Techniques
4.5.1 Open Addressing
  1. Linear Probing
  2. Quadratic Probing
  3. Rehashing

4.5.2 Chaining

  1. Coalesced Chaining
  2. Separate Chaining