About the Book
This book takes a gentle approach
to the data structures course in Java. It offers an early, self-contained
review of object-oriented programming and Java to give students a firm
grasp of key concepts, and allows those experienced in other languages
to adjust easily. The book also offers a flexibility which allows professors
such options as emphasizing object-oriented programming, covering recursion
and sorting early or accelerating the pace of the course. This title meets
the needs of professors searching for a book to balance the introduction
of object-oriented programming and data structures with Java.
The new edition has been updated to
cover Java 1.3 and includes new appendices with more reference material
on such topics as Java collections. It also features increased coverage
of object-oriented programming and inheritance. New exercises on radix
sort and shell sort have also been added.
Features
-
Updated to cover Java 1.3.
-
Increased coverage of object-oriented programming.
-
New and revised exercises.
-
Offers a flexible ordering of topics so professors
can tailor the book to meet their course needs.
-
Teaches students how to specify, design, implement,
and use classes based on the Java Class Libraries.
-
Consistently uses a five-step method for working
with data types to ensure students have a thorough knowledge of the subject:
understand the data type abstractly, write a specification, use the data
type, design and implement the data type, and analyze the implementation.
-
Shows students how to write Java Applets to
test newly implemented data structures.
Related
Books
Data Structures - Programming
Courses (Data Structures)
Table of Contents
The Phases of Software Development.
Specification, Design, Implementation.
Running Time Analysis.
Testing and Debugging.
Abstract Data Types and Java Classes.
Classes and Their Members.
Using a Class.
Packages.
Parameters, Equals Methods, and Clones.
Collection Classes.
A Review of Java Arrays.
An ADT for a Bag of Integers.
Programming Project: The Sequence
ADT.
Applets for Interactive Testing.
Linked Lists.
Fundamentals of Linked Lists.
Methods for Manipulating Nodes.
Manipulating an Entire Linked List.
The Bag ADT with a Linked List.
Programming Project: The Sequence
ADT with a Linked List.
Arrays vs. Linked Lists vs. Doubly
Linked Lists.
Java Objects and Iterators.
Java's Object Type.
A Bag of Objects.
JCL Collections and Nodes of Objects.
Iterators.
Stacks.
Introduction to Stacks.
Stack Applications.
Implementations of the Stack ADT.
More Complex Stack Applications.
Queues.
Introduction to Queues.
Queue Applications.
Implementations of the Queue.
ADT.
Priority Queues.
Recursive Thinking.
Recursive Methods.
Studies of Recursion: Fractals and
Mazes.
Reasoning about Recursion.
Trees.
Introduction to Trees.
Tree Representations.
A Class for Binary Tree Nodes.
Tree Traversals.
Binary Search Trees.
Tree Projects.
Heaps.
B-Trees.
Trees, Logs, and Time Analysis.
Searching.
Serial Search and Binary Search.
Open-Address Hashing.
Using Java's Hashtable Class.
Chained Hashing.
Time Analysis of Hashing.
Sorting.
Quadratic Sorting Algorithms.
Recursive Sorting Algorithms.
An O(N LOG N) Algorithm Using a Heap.
Software Reuse with Extended Classes.
Extended Classes.
Simulation of an Ecosystem.
Using Extended Classes for ADTs.
Graphs.
Graph Definitions.
Graph Implementations.
Graph Traversals.
Path Algorithms.
Appendices.
Java's Primitive Types and Arithmetic
Overflow.
Java Input.
Throwing and Catching Java Exceptions.
Java's Vector and Hashtable.
A Class for Nodes in a Linked List.
A Class for a Bag of Objects.
Further Big-O Notation.
Javadoc. |