Overview
The author, Cliff Shaffer provides a superior learning tool for those who desire more rigorous data structures and an algorithm analysis book utilizing Java.
While the author covers most of the standard data structures, he concentrates on teaching the principles required to select or design a data structure that will best solve a problem. The emphasis is on data structures, and algorithm analysis, not teaching Java. Java is utilized strictly as a tool to illustrate data structures concepts and only the minimal, useful subset of Java is included.
This is an undergraduate text that focuses on the analysis of fundamental data structures and algorithms using a cost/benefit approach emphasizing software engineering principles and programming efficiencies. Please note that code examples are in Java. Familiarity with programming concepts from prerequisite courses assumed. The text places strong emphasis on tradeoffs, common practices and application needs, with respect to data structures. It introduces basic concepts of algorithm analysis and analytical techniques before discussing the fundamental properties of data structures. Then it uses these basic analytical techniques in discussions and comparisons of lists, stacks and queues. The book also examines binary trees, their properties and implementation, and builds upon binary trees to discuss general trees and graphs. It goes on to explain internal and external sorting, searching and indexing. The author is associated with Virginia Tech.