1. Tree..................................................7
1.1 Concept and Terminologies
1.2 Types of Binary Trees – Binary Tree, Skewed Tree, Strictly Binary Tree, Full Binary Tree, Complete Binary Tree, Expression Tree, Binary Search Tree.
1.3 Representation – Static and Dynamic
1.4 Implementation and Operations on Binary Search Tree - Create, Insert, Delete, Search,
1.5 Tree traversals – preorder, inorder, postorder (recursive implementation), Level-order traversal using queue, Counting leaf, non-leaf and Total nodes, Copy, Mirror.
1.6 Applications of trees – Heap Sort.(Max heap and Min Heap)
2. Efficient Search Trees..................................................61
2.1 Basic Terminology: Balanced tree - AVL Tree, Red Black tree
2.2 AVL Tree – Rotations (LL, LR, RL, RR)
2.3 Red Black tree – Operation (Insertion, Deletion)
2.4 Multi-way search tree
2.4.1 B tree and B+ tree – Concept, Operation (Insertion)
3. Graph.............................................................99
3.1 Concept and terminologies
3.2 Graph Representation – Adjacency Matrix, Adjacency List, Inverse Adjacency list, Adjacency Multi List.
3.3 Graph Traversals – Breadth First Search and Depth First Search (with implementation)
3.4 Applications of graph
3.4.1 Topological sorting
3.4.2 Use of Greedy Strategy in Minimal Spanning Trees (Prims and Kruskals algorithm)
3.4.3 Single Source Shortest Path - Dijkstra’s algorithm
3.4.4 Dynamic Programming Strategy – All Pair Shortest Path – Floyd Warshall algorithm
3.4.5 Use of graphs in social networks
4. Hash Table .......................................137
4.1 Concept of Hashing
4.2 Terminologies – Hash table, Hash function, Bucket, Hash address, Collision, Overflow
4.3 Hash Function
4.3.1 Properties
4.3.2 Methods/ Functions (Division, MID Square, Folding etc.)
4.4 Collision resolution techniques
4.4.1 Open Addressing – Linear probing, Quadratic probing, Rehashing
4.4.2 Chaining - Coalesced, Separate Chaining