
This book offers a solid, practice-oriented treatment of how sets, dictionaries and index structures are efficiently organized, searched and updated. It covers central data types, dictionaries (hashing, search trees), priority queues, disjoint-set data structures (union–find), as well as external search structures such as B-trees. Pseudocode, Java examples and numerous exercises with solutions illustrate practical implementation. The methods presented are essential for databases, search engines, file systems, routing tables and many other software systems. This book is aimed at students, developers and anyone who wants to gain a deep understanding of algorithmic data organization.