In this book, author Michael Main takes a gentle approach to the data structures course in Java. The text offers an early, self-contained review of object-oriented programming and Java to give students a firm grasp of key concepts, and allows students with a variety of backgrounds to adjust easily. This book offers a flexibility that allows professors such options as emphasizing object-oriented programming, covering recursion and sorting early, or accelerating the pace of the course. MainIs book meets the needs of professors searching for a book to balance the introduction of object-oriented programming and data structures with Java.
Features
The Phases of Software Development.
Specification, Design, Implementation.
Running Time Analysis.
Testing and Debugging.
Classes and Their Members.
Using a Class.
Packages.
Parameters, Equals Methods, and Clones.
A Review of Java Arrays.
An ADT for a Bag of Integers.
Programming Project: The Sequence ADT.
Applets for Interactive Testing.
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's Object Type.
A Bag of Objects.
JCL Collections and Nodes of Objects.
Iterators.
Introduction to Stacks.
Stack Applications.
Implementations of the Stack ADT.
More Complex Stack Applications.
Introduction to Queues.
Queue Applications.
Implementations of the Queue.
Priority Queues.
Recursive Methods.
Studies of Recursion: Fractals and Mazes.
Reasoning about Recursion.
Introduction to Trees.
Tree Representations.
A Class for Binary Tree Nodes.
Tree Traversals.
Binary Search Trees.
Heaps.
B-Trees.
Trees, Logs, and Time Analysis.
Serial Search and Binary Search.
Open-Address Hashing.
Using Java's Hashtable Class.
Chained Hashing.
Time Analysis of Hashing.
Quadratic Sorting Algorithms.
Recursive Sorting Algorithms.
An O(N LOG N) Algorithm Using a Heap.
Extended Classes.
Simulation of an Ecosystem.
Using Extended Classes for ADTs.
Graph Definitions.
Graph Implementations.
Graph Traversals.
Path Algorithms.
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. 0201357445T04062001
