Wiley
Wiley.com
Print this page Share
Textbook

Data Structures: Abstraction and Design Using Java, Second Edition

January 2010, ©2010
Data Structures: Abstraction and Design Using Java, Second Edition (EHEP001607) cover image
This text combines a strong emphasis on problem solving and software design with the study of data structures. To this end, the authors discuss applications of each data structure to motivate its study. After providing the specification (interface) and the implementation (a Java class)case studies that use the data structure to solve a significant problem are introduced.

Data Structures:Abstraction and Design Using Java, 2e  lays the foundation for programmers to build their skills. The focus is placed on how to implement effective programs 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.

See More

Preface.

Chapter 1 Object-Oriented Programming and Class Hierarchies.

1.1 ADTs, Interfaces, and the Java API.

1.2 Introduction to Object-Oriented Programming.

1.3 Method Overriding, Method Overloading, and Polymorphism.

1.4 Abstract Classes.

1.5 Class Object and Casting.

1.6 A Java Inheritance Example—The Exception Class Hierarchy.

1.7 Packages and Visibility.

1.8 A Shape Class Hierarchy.

Chapter Review, Exercises, and Programming Projects.

Chapter 2 Lists and the Collections Framework.

2.1 The List Interface and ArrayList Class.

2.2 Applications of ArrayList.

2.3 Implementation of an ArrayList Class.

2.4 Algorithm Efficiency and Big-O.

2.5 Single-Linked Lists.

2.6 Double-Linked Lists and Circular Lists.

2.7 The LinkedList Class and the Iterator, ListIterator, and Iterable Interfaces.

2.8 Implementation of a Double-Linked List Class.

2.9 The Collections Framework Design.

2.10 Application of the LinkedList Class.

2.11 Testing.

Chapter Review, Exercises, and Programming Projects.

Chapter 3 Stacks.

3.1 Stack Abstract Data Type.

3.2 Stack Applications.

3.3 Implementing a Stack.

3.4 Additional Stack Applications.

Chapter Review, Exercises, and Programming Projects.9

Chapter 4 Queues.

4.1 Queue Abstract Data Type.

4.2 Maintaining a Queue of Customers.

4.3 Implementing the Queue Interface.

4.4 The Deque Interface.

4.5 Simulating Waiting Lines Using Queues.

Chapter Review, Exercises, and Programming Projects.

Chapter 5 Recursion.

5.1 Recursive Thinking.

5.2 Recursive Definitions of Mathematical Formulas.

5.3 Recursive Array Search.

5.4 Recursive Data Structures.

5.5 Problem Solving with Recursion.

5.6 Backtracking.

Chapter Review, Exercises, and Programming Projects.

Chapter 6 Trees.

6.1 Tree Terminology and Applications.

6.2 Tree Traversals.

6.3 Implementing a BinaryTree Class.

6.4 Binary Search Trees.

6.5 Heaps and Priority Queues.

6.6 Huffman Trees.

Chapter Review, Exercises, and Programming Projects.

Chapter 7 Sets and Maps.

7.1 Sets and the Set Interface.

7.2 Maps and the Map Interface.

7.3 Hash Tables.

7.4 Implementing the Hash Table.

7.5 Implementation Considerations for Maps and Sets.

7.6 Additional Applications of Maps.

7.7 Navigable Sets and Maps.

Chapter Review, Exercises, and Programming Projects.

Chapter 8 Sorting.

8.1 Using Java Sorting Methods.

8.2 Selection Sort.

8.3 Bubble Sort.

8.4 Insertion Sort.

8.5 Comparison of Quadratic Sorts.

8.6 Shell Sort: A Better Insertion Sort.

8.7 Merge Sort.

8.8 Heapsort.

8.9 Quicksort.

8.10 Testing the Sort Algorithms.

8.11 The Dutch National Flag Problem (Optional Topic).

Chapter Review, Exercises, and Programming Projects.

Chapter 9 Self-Balancing Search Trees.

9.1 Tree Balance and Rotation.

9.2 AVL Trees.

9.3 Red-Black Trees.

9.4 2-3 Trees.

9.5 B-Trees and 2-3-4 Trees.

9.6 Skip-Lists.

Chapter Review, Exercises, and Programming Projects.

Chapter 10 Graphs.

10.1 Graph Terminology.

10.2 The Graph ADT and Edge Class.

10.3 Implementing the Graph ADT.

10.4 Traversals of Graphs.

10.5 Applications of Graph Traversals.

10.6 Algorithms Using Weighted Graphs.

Chapter Review, Exercises, and Programming Projects.

Appendix A Introduction to Java.

A.1 The Java Environment and Classes.

A.2 Primitive Data Types and Reference Variables.

A.3 Java Control Statements.

A.4 Methods and Class Math.

A.5 The String, StringBuilder, and StringBuffer Classes.

A.6 Wrapper Classes for Primitive Types.

A.7 Defining Your Own Classes.

A.8 Arrays.

A.9 Input/Output Using Class JOptionPane.

A.10 Input/Output Using Streams and the Scanner Class.

A.11 Catching Exceptions.

A.12 Throwing Exceptions.

Appendix Review, Exercises, and Programming Projects.

Appendix B Overview of UML.

B.1 The Class Diagram.

B.2 Sequence Diagrams.

Appendix C Event-Oriented Programming.

C.1 Elements of an Event-Oriented Application.

C.2 Overview of the AWT and Swing Hierarchy.

C.3 Layout Managers.

C.4 Components for Data Entry.

C.5 Using Data Entry Components in a GUI.

C.6 Menus and Toolbars.

C.7 Processing Mouse Events.

Appendix Review, Exercises, and Programming Projects.

Appendix D Testing and Debugging.

D.1 Testing Using the JUnit Framework.

D.2 Debugging a Program.

D.3 Visualizing Data Structures.

Glossary.

Index.

See More
  • The coverage is updated and streamlined to provide a more accessible approach and to enable students to begin studying the Collections Framework earlier than before (Chapter 2 in the new edition). 
  • Change in emphasis from a software engineering approach to laying a foundation
  • New Chapters 1 and 2 which reorganize and consolidate concepts discussed in Ch 1-4 of the first edition and enable students to begin studying object-oriented programming and data structures earlier.
  • New appendix on Unit Testing with discussion of latest version of JUnit and jGRASP.
  • New programming projects/exercises in many chs
  • Chapter 4 on queues has a new section on the Java 6 Deque.
  • Chapter 9 on balanced trees has expanded coverage of B-trees and a new section on Java 6 SkipList.
  • Replaced most uses of the BufferedReader class and its methods with Scanner methods.
  • Replaced use of StringTokenizer class with Java 6 methods String.split and Scanner.findInLine.


 

See More
  • Combines a strong emphasis on problem solving and software design with the study of data structures. To this end, the authors discuss applications of each data structure to motivate its study. After providing the specification (interface) and the implementation (one or more Java classes) we then cover case studies that use the data structure to solve significant problems.
  • Focuses on implementing effective programs using the Java Collections Framework and the classes in the framework.  The code for these classes follows closely that which is provided in the framework and is not a conversion of code in other programming languages.
  • Over 20 case studies follow a five-step process (problem specification, analysis, design, implementation, and testing)
  • Many problems have extensive discussions of testing and include classes and driver methods for testing solutions to case studies.

Extensive pedagogy to assist inexperienced programmers in learning the material including boxes on Programming Pitfalls, Design concepts, and Programming Practice; Syntax boxes for quick reference; and self-check and end-of-section exercises for immediate feedback and practice

See More
Instructors Resources
Wiley Instructor Companion Site
Instructor and student companion websites at www.wiley.com/college/koffman including:
Instructor and student companion websites at www.wiley.com/college/koffman including: Additional homework problems and case studies Source code for all classes in the book. Solutions to end of section odd-numbered self-check and programming exercises. Solutions to all exercises and chapter review exercises and sample programming project solutions (for instructors). PowerPoint slides. Testbank.
ENHANCE YOUR COURSE
CourseSmart
Instant access to textbooks as eTextbooks.
Learn more
Digital evaluation copy available for this title
Request Copy
Contact your Wiley Representative
Find Your Rep
See More
See Less
Students Resources
Wiley Student Companion Site
Instructor and student companion websites at www.wiley.com/college/koffman including:
Instructor and student companion websites at www.wiley.com/college/koffman including: Additional homework problems and case studies Source code for all classes in the book. Solutions to end of section odd-numbered self-check and programming exercises. Solutions to all exercises and chapter review exercises and sample programming project solutions (for instructors). PowerPoint slides. Testbank.
ADDITIONAL RESOURCES
CourseSmart
Instant access to textbooks as eTextbooks.
Learn more
See More
See Less
Purchase Options
Wiley E-Text   
Data Structures: Abstraction and Design Using Java, 2nd Edition
ISBN : 978-0-470-57406-5
832 pages
September 2010, ©2010
$52.00   BUY

Paperback   
Data Structures: Abstraction and Design Using Java, 2nd Edition
ISBN : 978-0-470-12870-1
832 pages
January 2010, ©2010
$160.95   BUY

Related Titles

Back to Top