Based on the suggestions from students and faculty members, this edition has been updated and revised to increase the clarity of presentation where required. Some of the prominent changes are as follows: • New sections on omega and theta notations, multi-linked lists, forests, conversion of general trees into binary trees, 2-3 trees, binary heap implementation of priority queues, interpolation search, jump search, tree sort, bucket hashing, cylinder surface indexing •Additional C programs on header linked lists, parentheses checking, evaluation of prefix expressions, priority queues, multiple queues, tree sort, file handling, address calculation sort • New appendices on dynamic memory allocation, garbage collection, backtracking, Johnson's problem • Stacks and queues and multi-way search trees are now covered in separate chapters with a more comprehensive explanation of concepts and applications