This best-selling book provides the conceptual tools to build file structures that can be quickly and efficiently accessed. It teaches good design judgment through an approach that puts the 'hands-on' work of constructing and running programs at the center of the learning process. This third edition presents the practice of object-oriented design and programming with complete implementations in C++ of many of the file structures techniques, including direct access I/O, buffer packing and unpacking, indexing, cosequential processing, B-trees, and external hashing. By following the examples, students will gain a significant understanding of file structure techniques, and see how C++ can be made an effective software development tool. Every line of code in the book has been tested on a variety of C++ systems. In addition, the class definitions and bodies are collected together in appendices.