Data structures with their associated operations form an essential component of studies in computing, and this book sets out to provide a firm understanding of them. It deals with arrays, lists, queues, stacks, binary trees and graphs, and with algorithms for operations such as searching and sorting. The text aims at providing an integrated approach to data structures: theory, practical programming and animated graphics supplement each other to provide students with a complete picture. Practical implementation, to promote sound understanding, is a key feature, and many example programs are developed, using a clear design process; full source code listings are supplied in each chapter and all of the programs, as well as animated graphic resources, are supplied on the CD-ROM. While Java is used throughout the book, the CD-ROM also contains C++ versions of the programs for those used to that language.