Data Structures: Abstraction and Design Using Java, 2nd Edition

by ;
  • ISBN13:


  • ISBN10:


  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2010-01-01
  • Publisher: Wiley

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
  • We Buy This Book Back!
    In-Store Credit: $10.50
    Check/Direct Deposit: $10.00
List Price: $177.33 Save up to $134.13
  • Rent Book $106.40
    Add to Cart Free Shipping


Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
  • The Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.


This book lays the foundation for programmers to build their skills. The focus is placed on how to implement effective programs using the JCL instead of producing mathematical proofs. The coverage is updated and streamlined to provide a more accessible approach to programming. They'll be able to develop a thorough understanding of basic data structures and algorithms through an objects-first approach. Data structures are discussed in the context of software engineering principles. Updated case studies also show programmers how to apply essential design skills and concepts.

Table of Contents

Object-Oriented Programming and Class Hierarchies
ADTs, Interfaces, and the Java API
Introduction to Object-Oriented Programming
Method Overriding, Method Overloading, and Polymorphism
Abstract Classes
Class Object and Casting
A Java Inheritance Example The Exception Class Hierarchy
Packages and Visibility
A Shape Class Hierarchy
Lists and the Collections Framework
The List Interface and ArrayList Class
Applications of ArrayList
Implementation of an ArrayList Class
Algorithm Efficiency and Big-O
Single-Linked Lists
Double-Linked Lists and Circular Lists
The LinkedList Class and the Iterator, ListIterator, and Iterable Interfaces
Implementation of a Double-Linked List Class
Application of the LinkedList Class
The Collections Framework Design
Stack Abstract Data Type
Stack Applications
Implementing a Stack
Additional Stack Applications
Queue Abstract Data Type
Maintaining a Queue of Customers
Implementing the Queue Interface
The Deque Interface
Simulating Waiting Lines Using Queues
Recursive Thinking
Recursive Definitions of Mathematical Formulas
Recursive Array Search
Recursive Data Structures
Problem Solving with Recursion
Tree Terminology and Applications
Tree Traversals
Implementing a BinaryTree Class
Binary Search Trees
Heaps and Priority Queues
Huffman Trees
Sets and Maps
Sets and the Set Interface
Maps and the Map Interface
Hash Tables
Implementing the Hash Table
Implementation Considerations for Maps and Sets
Additional Applications of Maps
Navigable Sets and Maps
Using Java Sorting Methods
Selection Sort
Bubble Sort
Insertion Sort
Comparison of Quadratic Sorts
Shell Sort: A Better Insertion Sort
Merge Sort
Testing the Sort Algorithms
The Dutch National Flag Problem (Optional Topic)
Self-Balancing Search Trees
Tree Balance and Rotation
AVL Trees
Red-Black Trees
2-3 Trees
B-Trees and 2-3-4 Trees
Graph Terminology
The Graph ADT and Edge Class
Implementing the Graph ADT
Traversals of Graphs
Applications of Graph Traversals
Algorithms Using Weighted Graphs
Introduction to Java
The Java Environment and Classes
Primitive Data Types and Reference Variables
Java Control Statements
Methods and Class Math
The String, StringBuilder, and StringBuffer Classes
Wrapper Classes for Primitive Types
Defining Your Own Classes
Input/Output Using Class JOptionPane
Input/Output Using Streams and the Scanner Class
Catching Exceptions
Throwing Exceptions
Overview of UML
The Class Diagram
Sequence Diagrams
Event-Oriented Programming
Elements of an Event-Oriented Application
Overview of the AWT and Swing Hierarchy
Layout Managers
Components for Data Entry
Using Data Entry Components in a GUI
Menus and Toolbars
Processing Mouse Events
Testing and Debugging
Testing Using the JUnit Framework
Debugging a Program
Visualizing Data Structures
Table of Contents provided by Publisher. All Rights Reserved.

Rewards Program

Write a Review