Course Outline: Data Structures and Algorithms -II
Chapter 1: Tree
1.1 Concept and Terminologies
- Definition of trees
- Nodes, edges, root, leaves, subtrees, depth, height
- Binary tree properties and terminology
1.2 Types of Binary Trees
- Binary tree, Skewed tree, 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 (arrays, pointers)
- Dynamic representation (linked list-based)
1.4 Implementation and Operations on Binary Search Tree (BST)
- Create, Insert, Delete, Search operations
- Tree Traversals:
- Preorder, Inorder, Postorder (Recursive implementation)
- Level-order traversal using a queue
- Counting leaf, non-leaf, and total nodes
- Tree operations:
- Copy tree, Mirror tree
1.5 Applications of Trees
- Heap Sort: Implementation using a heap
- Greedy Strategy: Introduction to Greedy algorithms
- Huffman Encoding: Implementation using a priority queue
Chapter 2: Efficient Search Trees
2.1 Terminology: Balanced Trees
- AVL Trees, Red-Black Trees, Splay Trees, Lexical search trees (Trie)
2.2 AVL Tree
- Concepts, balance factor, and rotations (Left and Right rotations)
2.3 Red-Black Trees
- Concept of Red-Black trees
- Insertion and deletion operations in Red-Black trees
2.4 Multi-way Search Trees
- B-Trees and B+ Trees:
- Insertion, Deletion operations
Chapter 3: Graph
3.1 Concept and Terminologies
- Graph definitions: Vertices, edges, directed and undirected graphs
- Weighted vs unweighted graphs, cyclic vs acyclic graphs
3.2 Graph Representation
- Adjacency Matrix
- Adjacency List
- Inverse Adjacency List
- Adjacency Multilist
3.3 Graph Traversals
- Breadth First Search (BFS)
- Depth First Search (DFS)
- Implementation of BFS and DFS
3.4 Applications of Graphs
- Topological Sorting: Directed acyclic graphs (DAGs)
- Greedy Strategy:
- Minimal Spanning Trees (Prim’s and Kruskal’s algorithms)
- Single Source Shortest Path: Dijkstra’s algorithm
- Dynamic Programming Strategy:
- All pairs shortest path – Floyd-Warshall algorithm
- Graphs in Social Networks: Graph representation of social networks
Chapter 4: Hash Table
4.1 Concept of Hashing
- Definition and importance of hashing in efficient searching and storage
4.2 Terminologies
- Hash Table, Hash Function, Bucket, Hash Address, Collision, Synonym, Overflow, etc.
4.3 Properties of a Good Hash Function
- Uniform distribution, minimal collisions, deterministic, etc.
4.4 Hash Functions
- Division Method
- MID-square Method
- Folding Methods
4.5 Collision Resolution Techniques
- Open Addressing:
- Linear probing, Quadratic probing, Rehashing
- Chaining:
- Coalesced chaining, Separate chaining