Focuses on the systematic study of data structures and algorithms. Coverage is almost identical to the recommendation of the Koffman Committee report for curriculum revisions for CS2. Using a strong Abstract Data Type (ADT) approach, McCracken explores each topic in theory, implementations, and applications. Also, data abstraction, modularization, and program verification are interwoven throughout the text so that their interrelationships with software engineering are clearly evident. Chapters cover the program development process, arrays and records, sets and strings, stacks and queues, recursion, linked lists, trees, sorting, searching, and graphs. Text contains chapter introductions and summaries, bibliographical notes, historical references, and footnotes.