Advanced Data Structures And Algorithms - A. A. Puntambekar details from flipkart
C++ class overview - Class definition, Objects, Class members, Access control, Class scope, Constructors and destructors, Parameter passing methods, Inline functions, Static class members, This pointer, Friend functions, Dynamic memory allocation and deallocation (new and delete), Exception handling.
Function overloading, Operator overloading, Generic programming - Function and class templates, Inheritance basics, Base and derived classes, Inheritance types, Base class access control, Runtime polymorphism using virtual functions, Abstract classes, Streams I/O.
Algorithms, Performance analysis-time complexity and space complexity, O-notation, Omega notation and Theta notation, Review of basic data structures - The list ADT, Stack ADT, Queue ADT, Implementation using template classes in C++, Sparse matrix representation.
Dictionaries, Linear list representation, Skip list representation, Operations - Insertion, Deletion and searching, Hash table representation, Hash functions, Collision resolution-separate chaining, Open addressing-linear probing, Quadratic probing, Double hashing, Rehashing, Extendible hashing, Comparison of hashing and skip lists.
Priority queues - Definition, ADT, Realizing a priority queue using heaps, Definition, Insertion, Deletion, Application-Heap sort, External sorting - Model for external sorting, Multiway merge, Polyphase merge.
Search trees (Part I) : Binary search trees, Definition, ADT, Implementation, Operations-searching, Insertion and deletion, Balanced search trees - AVL trees, Definition, Height of an AVL tree, Representation, Operations-insertion, Deletion and searching.
Search trees (Part II) : Red - Black trees and splay trees, B-Trees-B-Tree of order m, Height of a B-Tree, Insertion, Deletion and searching, Comparison of search trees.
Divide and Conquer-General method, Applications - Binary search, Merge sort, Quick sort, Strassen's matrix multiplication.
Efficient non recursive tree traversal algorithms, Biconnected components. Disjoint set operations, Union and find algorithms.
Greedy method and Dynamic programming : General method (Greedy), Minimum cost spanning trees, Job sequencing with deadlines, General method (Dynamic programming), Optimal binary search trees, 0/1 Knapsack problem, Ordering matrix multiplications.