Page 28 of 93
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY
II Year B.Tech. IT I-SemT P C
ADVANCED DATA STRUCTURES AND ALGORITHMS
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) : Introduction to 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
TEXT BOOKS :
1. Data Structures and Algorithm Analysis in C++, Mark Allen Weiss, Pearson
Education, second edition.
2. Data structures, Algorithms and Applications in C++,S.Sahni,University press (India)
pvt ltd, 2nd edition, Orient Longman pvt.ltd.
1. Data structures and Algorithms in C++, Michael T.Goodrich, R.Tamassia and
D.Mount, Seventh Edition Wiley student edition, John Wiley and Sons.
2. Data Structures and Algorithms in C++, Third Edition, Adam Drozdek, Thomson
3. Problem solving with C++, The OOP, Fourth edition, W.Savitch, Pearson education.
4. C++, The Complete Reference, 4th Edition, Herbert Schildt, TMH.
5. Data structures using C and C++, Langsam, Augenstein and Tanenbaum, PHI/Pearson Education.