A practical text designed for the needs of undergraduate students.
Provides an understanding of fundamental data structures
through clear explanations, illustrations, and case studies.
Uses actual Java code for nearly all algorithms.
Presents basic analysis terminology early in the text and
analysis techniques throughout. The techniques provided assume a range
of instructional levels so that they may be used by students with
varying backgrounds in the subject.
Provides integrated treatment of both in-memory and disk-
based algorithm techniques to allow students to see how these techniques
are related, and the key differences between them.
Supports the concept that algorithm analysis is practical
and helps in the design of real programs by presenting data structure
costs and benefits.
Includes exercises as well as many suggestions for projects
to provide students with hands-on experience.
Presents several new data structures, including skip lists,
multidimensional search trees, and amortized analysis are discussed.
Provides a chapter on the limits of computation: a brief
introduction to computability and NP-completeness to permit an easy-to-understand
introduction to these topics.
1. Data Structures and Algorithms.
2. Mathematical Preliminaries.
3. Algorithm Analysis.
II. FUNDAMENTAL DATA STRUCTURES.
4. Lists, Stacks, and Queues.
5. Binary Trees.
6. General Trees.