
Data Structures and Problem Solving Using Java / Edition 1
by Mark Allen WeissISBN-10: 0201549913
ISBN-13: 9780201549911
Pub. Date: 10/16/1997
Publisher: Addison-Wesley
Overview
B> Data Structures and Problem Solving Using Java, Second Edition, provides a practical introduction to data structures and algorithms from the perspective of abstract thinking and problem solving, as well as the use of Java. Experienced author and educator Mark Allen Weiss takes a unique approach by clearly separating the specification and implementation of data structures. He presents the interface and running time of data structures in Part II of the book. Then, he provides the opportunity for readers to use the data structures in a variety of practical examples before introducing the implementations in Part IV. By first gaining a familiarity with the interfaces and uses of data structures, readers will be able to think more abstractly about the subject matter. New utilization of the Java 1.2 Collections API frees the second edition from relying upon a non-standard, book-dependent data structures package. The new edition also features new coverage of Design Patterns and significantly revised material of inheritance. This book is appropriate for readers who are familiar with basic Java programming concepts or are new to the language and want to learn how it treats data structures concepts.
Product Details
- ISBN-13:
- 9780201549911
- Publisher:
- Addison-Wesley
- Publication date:
- 10/16/1997
- Edition description:
- Older Edition
- Pages:
- 780
- Product dimensions:
- 7.64(w) x 9.46(h) x 1.34(d)
Table of Contents
(Each Chapter concludes with a “Summary,” “Objects of the Game,” “Common Error,” “On the Internet,” “Exercises,” and “References.” ).
I. TOUR OF JAVA.
The First Program.
Primitive Types.
Basic Operators.
Conditional Statements.
Methods.
2. Reference Types.
Basics of Objects and References.
Strings.
Arrays.
Exception Handling.
Input and Output.
3. Objects and Classes.
A Simple Example.
Javadoc.
Basic Methods.
Additional Constructs.
Packages.
A Design Pattern: Composite (Pair).
4. Inheritance.
Designing Hierarchies.
Multiple Inheritance.
The Interface.
Fundamental Inheritance in Java.
Implementing Generic Components.
The Functor (Function Objects).
Dynamic Binding Details.
II. ALGORITHMS AND BUILDING BLOCKS.
Examples of Algorithm Running Times.
The Maximum Contiguous Subsequence Sum Problem.
General Big-Oh Rules.
The Logarithm.
Static Searching Problem.
Checking an Algorithm Analysis.
Limitations of Big-Oh Analysis.
6. The Collections API.
The Iterator Pattern.
Collections API: Containers and Iterators.
Generic Algorithms.
The List Interface.
Stacks and Queues.
Sets.
Maps.
Priority Queues.
7. Recursion.
Background: Proofs by Mathematical Induction.
Basic Recursion.
Numerical Applications.
Divide-and-Conquer Algorithms.
Dynamic Programming.
Backtracking Algorithms.
8. Sorting Algorithms.
Preliminaries.
Analysis of the Insertion Sort and Other Simple Sorts.
Shellsort.
Mergesort.
Quicksort.
Quickselect.
A Lower Bound for Sorting.
9. Randomization.
Random-number Generators.
Nonuniform Random Numbers.
Generating a Random Permutation.
Randomized Algorithms.
Randomized Primality Testing.
III. APPLICATIONS.
The Game of Tic-Tac-Toe.
11. Stacks and Compilers.
A Simple Calculator.
12. Utilities.
A Cross-reference Generator.
13. Simulation.
Event-driven Simulation.
14. Graphs and Paths.
Unweighted Shortest-path Problem.
Positive-weighted, Shortest-path Problem.
Negative-weighted, Shortest-path Problem.
Path Problems in Acyclic Graphs.
IV. IMPLEMENTATIONS.
Iterators and Inner Classes.
The AbstractCollection Class.
Implementation of ArrayList with an Iterator.
16. Stacks and Queues.
Linked-list Implementations.
Comparison of the Two Methods.
The java.util.Stack Class.
Double-Ended Queues.
17. Linked Lists.
Java Implementation.
Doubly Linked Lists and Circular Linked Lists.
Sorted Linked Lists.
Implementing the Collections API LinkedList Class.
18. Trees.
Binary Trees.
Recursion and Trees.
Tree Traversal: Iterator Classes.
19. Binary Search Trees.
Order Statistics.
Analysis of Binary Search Tree Operations.
AVL Trees.
Red-Black Trees.
AA-Trees.
Implementing the Collections API TreeSet and TreeMap Classes.
B-Trees.
20. Hash Tables.
Hash Function.
Linear Probing.
Quadratic Probing.
Separate Chaining Hashing.
Hash Tables Versus Binary Search Trees.
Hashing Applications.
21. A Priority Queue: The Binary Heap.
Implementation of the Basic Operations.
The buildHeap Operation: Linear-Time Heap Construction.
Advanced Operations: decreaseKey and merge.
Internal Sorting: Heapsort.
External Sorting.
V. ADVANCED DATA STRUCTURES.
The Basic Bottom-Up Splay Tree.
Basic Splay Tree Operations.
Analysis of Bottom-Up Splaying.
Top-Down Splay Trees.
Implementation of Top-Down Splay Trees.
Comparison of the Splay Tree with Other Search Trees.
23. Merging Priority Queues.
The Pairing Heap.
24. The Disjoint Set Class.
Dynamic Equivalence and Two Applications.
The Quick-Find Algorithm.
The Quick-Union Algorithm.
Java Implementation.
Worst Case for Union-by-Rank and Path Compression.
APPENDICES.
B. Graphical User Interfaces.
Customer Reviews
Average Review:
Most Helpful Customer Reviews
![]() |
This book is very confusing for an average user. The codes are not easy to follow. He tends to make the code look more like industry codes, rather than codes for users and students to easily understand. Other than that , this book is very good if you are a serious java programmer. This book is not good for CSC Students though.
|
![]() |
Very good book for serious students, detailed description of Data Structures. Elaborates on Java language structure and allows for a very clear, consise understanding of Java and Data Structures.
|
![]() |
Extremely confusing and poorly organized book. Vague explanations are unacceptable for the CS course textbook. Probably the worst book on the subject.
|
![]() |
This book has one of the most decent treatment of the theory behind recursion that I have ever seen. It gives a solid and clear idea of how algorithms are assembled. and allows us to fully appreciate the advantages of the object oriented languages this book is excellent for serious students who are concerned with a general way of logical thinking that enable them to extrapolate easily to any enviroment or language.
|