Data Structures and the Java Collections Framework / Edition 2

Data Structures and the Java Collections Framework / Edition 2

by William Collins
     
 

ISBN-10: 0073022659

ISBN-13: 9780073022659

Pub. Date: 04/16/2004

Publisher: McGraw-Hill Osborne

Data Structures and the Java Collections Framework, 2/e by William Collins teaches the fundamentals of data structures using java. This student-friendly book focuses on teaching students how to apply the concepts presented. To that end many applications and examples are included throughout the book. Collins also provides programming projects at the end of each

Overview

Data Structures and the Java Collections Framework, 2/e by William Collins teaches the fundamentals of data structures using java. This student-friendly book focuses on teaching students how to apply the concepts presented. To that end many applications and examples are included throughout the book. Collins also provides programming projects at the end of each chapter, which get students hands on with code.

In the second edition, Collins has increased his coverage on teaching students to build data structures from scratch. He also continues to use the Java Collections Framework where appropriate. His goal is give students an excellent background in creating data structures themselves, as well as make them comfortable using the standard library.

On-line Labs accompany this book and make it easy to have students start practice what they are learning. These labs can be used as open-labs, closed labs, or homework assignments and are designed to give students hands-on experience in programming. .

Product Details

ISBN-13:
9780073022659
Publisher:
McGraw-Hill Osborne
Publication date:
04/16/2004
Edition description:
REV
Pages:
761
Product dimensions:
7.60(w) x 9.00(h) x 1.30(d)

Table of Contents

Prefacexiv
Chapter 1Important Features of Java1
1.1Classes2
Summary33
Exercises33
Programming Project 1.1Developing and Using a Sequence Class37
Chapter 2Interfaces and Collection Classes39
2.1Abstract Methods and Abstract Classes40
2.2Interfaces41
2.3Arrays45
2.4Collection Classes46
2.5Storage Structures for Collection Classes48
Summary59
Exercises60
Programming Project 2.1Expanding the LinkedCollection Class62
Chapter 3Introduction to Software Engineering65
3.1The Software Development Life Cycle66
3.2Problem Analysis66
3.3Program Design69
3.4Program Implementation73
3.5Program Maintenance86
Summary87
Exercises88
Programming Project 3.1Further Expansion of the LinkedCollection Class91
Chapter 4Recursion93
4.1Introduction94
4.2Factorials94
4.3Decimal to Binary98
4.4Towers of Hanoi102
4.5Backtracking111
4.6Binary Search120
4.7Indirect Recursion131
4.8The Cost of Recursion132
Summary133
Exercises134
Programming Project 4.1Iterative Version of Towers of Hanoi142
Programming Project 4.2Eight Queens144
Programming Project 4.3A Knight's Tour146
Chapter 5Array Lists149
5.1The List Interface150
5.2The ArrayList Class151
5.3The ArrayList Implementation162
5.4Application: High-Precision Arithmetic169
5.5The Vector Class175
Summary175
Exercises175
Programming Project 5.1Extending the VeryLongInt Class179
Programming Project 5.2The Deque Class180
Chapter 6Linked Lists185
6.1The LinkedList Class186
6.2Application: A Line Editor211
Summary223
Exercises224
Programming Project 6.1Extending the Line Editor226
Programming Project 6.2Alternative Design and Implementation of the LinkedList Class231
Chapter 7Queues and Stacks233
7.1Queues234
7.2Computer Simulation242
7.3Application: A Simulated Car Wash244
7.4Stacks251
7.5Application: How Compilers Implement Recursion254
7.6Application: Converting From Infix to Postfix257
Summary267
Exercises267
Programming Project 7.1Extending Speedo's Car Wash270
Programming Project 7.2Run-Time Evaluation of a Condition272
Programming Project 7.3An Iterative Version of Maze-Search276
Chapter 8Binary Trees and Binary Search Trees277
8.1Definition and Properties of Binary Trees278
8.2Binary Search Trees294
Summary316
Exercises317
Programming Project 8.1An Alternative Design and Implementation of the Binary-Search-Tree Data Structure321
Chapter 9Balanced Binary Search Trees323
9.1A Problem with Binary Search Trees324
9.2Rotations324
9.3AVL Trees329
9.4Red-Black Trees348
Summary355
Exercises356
Programming Project 9.1Defining the remove Method in the AVLTree Class360
Chapter 10Tree Maps and Tree Sets361
10.1The TreeMap Class362
10.2Application: TreeMap Objects: A Simple Thesaurus389
10.3The TreeSet Class395
10.4Application: A Simple Spell-Checker399
Summary405
Exercises405
Programming Project 10.1Enhancing the SpellChecker Project408
Programming Project 10.2Determining Word Frequencies410
Programming Project 10.3Building a Concordance412
Chapter 11Priority Queues415
11.1Introduction416
11.2Definition of the PriorityQueue Interface417
11.3Implementations of the PriorityQueue Interface417
11.4Application: Huffman Codes432
Summary446
Exercises447
Programming Project 11.1Decoding a Huffman-Encoded Message450
Chapter 12Sorting453
12.1Introduction454
12.2Insertion Sort454
12.3How Fast Can We Sort?457
12.4Fast Sorts459
Summary482
Exercises482
Programming Project 12.1File Sorting491
Chapter 13Searching and the Hash Classes495
13.1A Framework to Analyze Searching496
13.2Review of Searching496
13.3The HashMap Class499
13.4The HashSet Class517
13.5Open-Address Hashing517
Summary533
Exercises534
Programming Project 13.1Comparing Chained Hashing and Open-Address Hashing538
Chapter 14Graphs, Trees, and Networks539
14.1Undirected Graphs540
14.2Directed Graphs543
14.3Trees544
14.4Networks545
14.5Graph Algorithms547
14.6Developing a Network Class563
14.7Backtracking through a Network582
Summary584
Exercises585
Programming Project 14.1Completing the Implementation of the Network Class under the Adjacency-Matrix Design589
Programming Project 14.2A Network Search590
Appendix 1Mathematical Background593
A1.1Introduction593
A1.2Functions and Sequences593
A1.3Sums and Products594
A1.4Logarithms595
A1.5Mathematical Induction597
Exercises605
Appendix 2The GUI and GUIListener Classes607
A2.1Introduction607
A2.2Threads608
A2.3Implementing the Process Interface610
A2.4The GUI Class611
A2.5The GUIListener Class615
A2.6Putting It All Together617
Appendix 3The Java Collections Framework619
A3.1Introduction619
A3.2The Collection Interface619
A3.3The List Interface621
A3.4The Listlterator Interface623
A3.5The Set Interface625
A3.6The Map Interface627
A3.7The ArrayList Class630
A3.8The LinkedList Class643
A3.9The TreeSet Class662
A3.10The TreeMap Class674
A3.11The HashSet Class689
A3.12The HashMap Class698
Bibliography709
Index711

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >