A student-friendly text, A Concise Introduction to Data Structures Using Java takes a developmental approach, starting with simpler concepts first and then building toward greater complexity. Important topics, such as linked lists, are introduced gradually and revisited with increasing depth. More code and guidance are provided at the beginning, allowing students time to adapt to Java while also beginning to learn data structures. As students develop fluency in Java, less code is provided and more algorithms are outlined in pseudocode. The text is designed to support a second course in computer science with an emphasis on elementary data structures.
The clear, concise explanations encourage students to read and engage with the material, while partial implementations of most data structures give instructors the flexibility to develop some methods as examples and assign others as exercises. The book also supplies an introductory chapter on Java basics that allows students who are unfamiliar with Java to quickly get up to speed. The book helps students become familiar with how to use, design, implement, and analyze data structures, an important step on the path to becoming skilled software developers.
A Brief Introduction to Java
Basics
Strings
Arrays
Using Objects
Writing Classes
Algorithm Analysis
Big-O Notation
Sorting: Insertion Sort
Searching: Binary Search
Integer Stacks
Stack Interface
Array Implementation
Linked Implementation
Generic Stacks
Generic Types
Generic Stack Implementations
Evaluating Expressions: Background
Evaluating Expressions: Implementations
Queues
Interface and Linked Implementation
Array Implementation
Inheritance: Fixed-Length Queues
Project: Fixed-Length Queue Simulation
Lists
Interface
Array Implementation
Linked Implementation
Iterators
Recursion
Mathematical Functions
Visualizing Recursion
Recursive and Generalized Searches
Applications
Trees
Definitions and Examples
Traversals
Binary Tree Abstract Class
Project: A Collection Hierarchy
Binary Search Trees
Queries
Insertion
Deletion
Performance
Heaps
Priority Queue Interface and Array-Based Heaps
Insertion and Deletion
Buildheap and Heapsort
Project: Event-Based Simulation
Hash Tables
Map Interface and Linked Implementation
Hash Tables
Chaining
Linear Probing
Bibliography
Index
Biography
Johnson, Mark J.