Unique approach. Weiss separates the interface of a data structure (Part 2) from their implementations (Part 4) to motivate abstract thinking and problem solving. Students are then asked to use the data structures in Part 3 (Applications). While this book has some mathematical content, it is not overwhelming.
Incorporates new features of Java 6.0.
Provides an introduction to Java in Part I for readers without previous experience using Java.
Discusses advanced structures in Part V.
Provides an implementation of a large subset of the Collections API in Part IV.
Instructor’s Manual with Solutions
Teaching resources for instructors containing solutions to problems and exercises.
A set of slides covering all chapters, suitable for use in lecturing.
Data Structures and Problem Solving Using Java takes a practical and unique approach to data structures that separates interface from implementation. It is suitable for the second or third programming course.
This book provides a practical introduction to data structures with an emphasis on abstract thinking and problem solving, as well as the use of Java. It does this through what remains a unique approach that clearly separates each data structure’s interface (how to use a data structure) from its implementation (how to actually program that structure). Parts I (Tour of Java), II (Algorithms and Building Blocks), and III (Applications) lay the groundwork by discussing basic concepts and tools and providing some practical examples, while Part IV (Implementations) focuses on implementation of data structures. This forces the reader to think about the functionality of the data structures before the hash table is implemented.
The Fourth Edition features many new updates as well as new exercises.
PART ONE: TOUR OF JAVA
Chapter 1: Primitive Java
Chapter 2: Reference Types
Chapter 3: Objects and Classes
Chapter 4: Inheritance
PART TWO: ALGORITHMS AND BUILDING BLOCKS
Chapter 5: Algorithm Analysis
Chapter 6: The Collections API
Chapter 7: Recursion
Chapter 8: Sorting Algorithms
Chapter 9: Randomization
PART THREE: APPLICATIONS
Chapter 10: Fun and Games
Chapter 11: Stacks and Compilers
Chapter 12: Utilities
Chapter 13: Simulation
Chapter 14: Graphs and Paths
PART FOUR: IMPLEMENTATIONS
Chapter 15: Inner Classes and Implementation of ArrayList
Chapter 16: Stacks and Queues
Chapter 17: Linked Lists
Chapter 18: Trees
Chapter 19: Binary Search Trees
Chapter 20: Hash Tables
Chapter 21: A Priority Queue: The Binary Heap
PART FIVE: ADVANCED DATA STRUCTURES
Chapter 22: Splay Trees
Chapter 23: Merging Priority Queues
Chapter 24: The Disjoint Set Class
APPENDIX A: Operators
APPENDIX B: Graphical User Interfaces
APPENDIX C: Bitwise Operators