Data structures & algorithms in Java
By: Robert Lafore.
Contributors: Lafore, Robert.
Edition: 2nd ed.
Publisher: Sams
Published: 2003
Place of publication: Indianapolis, Ind
Language: eng
Number of pages: 776
Subjects: Data structures (Computer science); Computer algorithms.; Java (Computer program language)
Notes: Includes bibliographical references (p. [735]-737) and index.
Rev. ed. of Sams teach yourself data structures and algorithms in 24 hours, 1999.
Table of contents: title: Introduction
pagenum: 1; title: What's New in the Second Edition
pagenum: 1; title: Additional Topics
pagenum: 1; title: End-of-Chapter Questions
pagenum: 2; title: Experiments
pagenum: 2; title: Programming Projects
pagenum: 2; title: What This Book Is About
pagenum: 2; title: What's Different About This Book
pagenum: 3; title: Easy to Understand
pagenum: 3; title: Workshop Applets
pagenum: 4; title: Java Example Code
pagenum: 5; title: Who This Book Is For
pagenum: 5; title: What You Need to Know Before You Read This Book
pagenum: 5; title: The Software You Need to Use This Book
pagenum: 6; title: How This Book Is Organized
pagenum: 6; title: Enjoy Yourself!
pagenum: 8; label: 1
title: Overview
pagenum: 9; title: What Are Data Structures and Algorithms Good For?
pagenum: 9; title: Real-World Data Storage
pagenum: 10; title: Programmer's Tools
pagenum: 11; title: Real-World Modeling
pagenum: 11; title: Overview of Data Structures
pagenum: 11; title: Overview of Algorithms
pagenum: 12; title: Some Definitions
pagenum: 13; title: Database
pagenum: 13; title: Record
pagenum: 13; title: Field
pagenum: 13; title: Key
pagenum: 14; title: Object-Oriented Programming
pagenum: 14; title: Problems with Procedural Languages
pagenum: 14; title: Objects in a Nutshell
pagenum: 15; title: A Runnable Object-Oriented Program
pagenum: 18; title: Inheritance and Polymorphism
pagenum: 21; title: Software Engineering
pagenum: 21; title: Java for C++ Programmers
pagenum: 22; title: No Pointers
pagenum: 22; title: Overloaded Operators
pagenum: 25; title: Primitive Variable Types
pagenum: 25; title: Input/Output
pagenum: 26; title: Java Library Data Structures
pagenum: 29; title: Summary
pagenum: 30; title: Questions
pagenum: 30; label: 2
title: Arrays
pagenum: 33; title: The Array Workshop Applet
pagenum: 33; title: Insertion
pagenum: 35; title: Searching
pagenum: 36; title: Deletion
pagenum: 36; title: The Duplicates Issue
pagenum: 37; title: Not Too Swift
pagenum: 39; title: The Basics of Arrays in Java
pagenum: 39; title: Creating an Array
pagenum: 40; title: Accessing Array Elements
pagenum: 40; title: Initialization
pagenum: 41; title: An Array Example
pagenum: 41; title: Dividing a Program into Classes
pagenum: 44; title: Classes LowArray and LowArrayApp
pagenum: 46; title: Class Interfaces
pagenum: 46; title: Not So Convenient
pagenum: 47; title: Who's Responsible for What?
pagenum: 48; title: The highArray.java Example
pagenum: 48; title: The User's Life Made Easier
pagenum: 52; title: Abstraction
pagenum: 52; title: The Ordered Workshop Applet
pagenum: 52; title: Linear Search
pagenum: 53; title: Binary Search
pagenum: 54; title: Java Code for an Ordered Array
pagenum: 56; title: Binary Search with the find() Method
pagenum: 56; title: The OrdArray Class
pagenum: 58; title: Advantages of Ordered Arrays
pagenum: 61; title: Logarithms
pagenum: 62; title: The Equation
pagenum: 63; title: The Opposite of Raising Two to a Power
pagenum: 64; title: Storing Objects
pagenum: 64; title: The Person Class
pagenum: 65; title: The classDataArray.java Program
pagenum: 65; title: Big O Notation
pagenum: 70; title: Insertion in an Unordered Array: Constant
pagenum: 70; title: Linear Search: Proportional to N
pagenum: 70; title: Binary Search: Proportional to log(N)
pagenum: 71; title: Don't Need the Constant
pagenum: 71; title: Why Not Use Arrays for Everything?
pagenum: 72; title: Summary
pagenum: 73; title: Questions
pagenum: 74; title: Experiments
pagenum: 75; title: Programming Projects
pagenum: 76; label: 3
title: Simple Sorting
pagenum: 77; title: How Would You Do It?
pagenum: 78; title: Bubble Sort
pagenum: 79; title: Bubble Sort on the Baseball Players
pagenum: 79; title: The BubbleSort Workshop Applet
pagenum: 81; title: Java Code for a Bubble Sort
pagenum: 85; title: Invariants
pagenum: 88; title: Efficiency of the Bubble Sort
pagenum: 88; title: Selection Sort
pagenum: 89; title: Selection Sort on the Baseball Players
pagenum: 89; title: The SelectSort Workshop Applet
pagenum: 90; title: Java Code for Selection Sort
pagenum: 92; title: Invariant
pagenum: 95; title: Efficiency of the Selection Sort
pagenum: 95; title: Insertion Sort
pagenum: 95; title: Insertion Sort on the Baseball Players
pagenum: 95; title: The InsertSort Workshop Applet
pagenum: 97; title: Java Code for Insertion Sort
pagenum: 99; title: Invariants in the Insertion Sort
pagenum: 103; title: Efficiency of the Insertion Sort
pagenum: 103; title: Sorting Objects
pagenum: 103; title: Java Code for Sorting Objects
pagenum: 104; title: Lexicographical Comparisons
pagenum: 107; title: Stability
pagenum: 107; title: Comparing the Simple Sorts
pagenum: 108; title: Summary
pagenum: 108; title: Questions
pagenum: 109; title: Experiments
pagenum: 111; title: Programming Projects
pagenum: 112; label: 4
title: Stacks and Queues
pagenum: 115; title: A Different Kind of Structure
pagenum: 115; title: Programmer's Tools
pagenum: 115; title: Restricted Access
pagenum: 116; title: More Abstract
pagenum: 116; title: Stacks
pagenum: 116; title: The Postal Analogy
pagenum: 117; title: The Stack Workshop Applet
pagenum: 118; title: Java Code for a Stack
pagenum: 120; title: Stack Example 1: Reversing a Word
pagenum: 124; title: Stack Example 2: Delimiter Matching
pagenum: 127; title: Efficiency of Stacks
pagenum: 132; title: Queues
pagenum: 132; title: The Queue Workshop Applet
pagenum: 133; title: A Circular Queue
pagenum: 136; title: Java Code for a Queue
pagenum: 137; title: Efficiency of Queues
pagenum: 142; title: Deques
pagenum: 143; title: Priority Queues
pagenum: 143; title: The PriorityQ Workshop Applet
pagenum: 144; title: Java Code for a Priority Queue
pagenum: 147; title: Efficiency of Priority Queues
pagenum: 149; title: Parsing Arithmetic Expressions
pagenum: 149; title: Postfix Notation
pagenum: 150; title: Translating Infix to Postfix
pagenum: 151; title: Evaluating Postfix Expressions
pagenum: 167; title: Summary
pagenum: 173; title: Questions
pagenum: 174; title: Experiments
pagenum: 176; title: Programming Projects
pagenum: 176; label: 5
title: Linked Lists
pagenum: 179; title: Links
pagenum: 179; title: References and Basic Types
pagenum: 180; title: Relationship, Not Position
pagenum: 182; title: The LinkList Workshop Applet
pagenum: 183; title: The Insert Button
pagenum: 183; title: The Find Button
pagenum: 184; title: The Delete Button
pagenum: 184; title: A Simple Linked List
pagenum: 185; title: The Link Class
pagenum: 185; title: The LinkList Class
pagenum: 186; title: The insertFirst() Method
pagenum: 187; title: The deleteFirst() Method
pagenum: 188; title: The displayList() Method
pagenum: 189; title: The linkList.java Program
pagenum: 190; title: Finding and Deleting Specified Links
pagenum: 193; title: The find() Method
pagenum: 196; title: The delete() Method
pagenum: 196; title: Other Methods
pagenum: 197; title: Double-Ended Lists
pagenum: 198; title: Linked-List Efficiency
pagenum: 202; title: Abstract Data Types
pagenum: 202; title: A Stack Implemented by a Linked List
pagenum: 203; title: A Queue Implemented by a Linked List
pagenum: 206; title: Data Types and Abstraction
pagenum: 210; title: ADT Lists
pagenum: 211; title: ADTs as a Design Tool
pagenum: 212; title: Sorted Lists
pagenum: 212; title: Java Code to Insert an Item in a Sorted List
pagenum: 213; title: The sortedList.java Program
pagenum: 215; title: Efficiency of Sorted Linked Lists
pagenum: 218; title: List Insertion Sort
pagenum: 218; title: Doubly Linked Lists
pagenum: 221; title: Traversal
pagenum: 222; title: Insertion
pagenum: 223; title: Deletion
pagenum: 225; title: The doublyLinked.java Program
pagenum: 226; title: Doubly Linked List as Basis for Deques
pagenum: 231; title: Iterators
pagenum: 231; title: A Reference in the List Itself?
pagenum: 232; title: An Iterator Class
pagenum: 232; title: Additional Iterator Features
pagenum: 233; title: Iterator Methods
pagenum: 234; title: The interIterator.java Program
pagenum: 235; title: Where Does the Iterator Point?
pagenum: 242; title: The atEnd() Method
pagenum: 242; title: Iterative Operations
pagenum: 243; title: Other Methods
pagenum: 244; title: Summary
pagenum: 244; title: Questions
pagenum: 245; title: Experiments
pagenum: 247; title: Programming Projects
pagenum: 248; label: 6
title: Recursion
pagenum: 251; title: Triangular Numbers
pagenum: 251; title: Finding the nth Term Using a Loop
pagenum: 252; title: Finding the nth Term Using Recursion
pagenum: 253; title: The triangle.java Program
pagenum: 255; title: What's Really Happening?
pagenum: 257; title: Characteristics of Recursive Methods
pagenum: 259; title: Is Recursion Efficient?
pagenum: 259; title: Mathematical Induction
pagenum: 259; title: Factorials
pagenum: 260; title: Anagrams
pagenum: 262; title: A Recursive Binary Search
pagenum: 268; title: Recursion Replaces the Loop
pagenum: 268; title: Divide-and-Conquer Algorithms
pagenum: 272; title: The Towers of Hanoi
pagenum: 273; title: The Towers Workshop Applet
pagenum: 274; title: Moving Subtrees
pagenum: 275; title: The Recursive Algorithm
pagenum: 276; title: The towers.java Program
pagenum: 277; title: Mergesort
pagenum: 279; title: Merging Two Sorted Arrays
pagenum: 280; title: Sorting by Merging
pagenum: 283; title: The MergeSort Workshop Applet
pagenum: 285; title: The mergeSort.java Program
pagenum: 287; title: Efficiency of the Mergesort
pagenum: 291; title: Eliminating Recursion
pagenum: 294; title: Recursion and Stacks
pagenum: 294; title: Simulating a Recursive Method
pagenum: 294; title: What Does This Prove?
pagenum: 301; title: Some Interesting Recursive Applications
pagenum: 303; title: Raising a Number to a Power
pagenum: 303; title: The Knapsack Problem
pagenum: 305; title: Combinations: Picking a Team
pagenum: 306; title: Summary
pagenum: 308; title: Questions
pagenum: 310; title: Experiments
pagenum: 312; title: Programming Projects
pagenum: 312; label: 7
title: Advanced Sorting
pagenum: 315; title: Shellsort
pagenum: 315; title: Insertion Sort: Too Many Copies
pagenum: 316; title: N-Sorting
pagenum: 316; title: Diminishing Gaps
pagenum: 317; title: The Shellsort Workshop Applet
pagenum: 319; title: Java Code for the Shellsort
pagenum: 321; title: Other Interval Sequences
pagenum: 324; title: Efficiency of the Shellsort
pagenum: 324; title: Partitioning
pagenum: 325; title: The Partition Workshop Applet
pagenum: 325; title: The partition.java Program
pagenum: 327; title: The Partition Algorithm
pagenum: 330; title: Efficiency of the Partition Algorithm
pagenum: 332; title: Quicksort
pagenum: 333; title: The Quicksort Algorithm
pagenum: 333; title: Choosing a Pivot Value
pagenum: 335; title: The QuickSort1 Workshop Applet
pagenum: 340; title: Degenerates to O(N^2) Performance
pagenum: 344; title: Median-of-Three Partitioning
pagenum: 345; title: Handling Small Partitions
pagenum: 350; title: Removing Recursion
pagenum: 354; title: Efficiency of Quicksort
pagenum: 355; title: Radix Sort
pagenum: 357; title: Algorithm for the Radix Sort
pagenum: 358; title: Designing a Program
pagenum: 358; title: Efficiency of the Radix Sort
pagenum: 359; title: Summary
pagenum: 359; title: Questions
pagenum: 361; title: Experiments
pagenum: 363; title: Programming Projects
pagenum: 363; label: 8
title: Binary Trees
pagenum: 365; title: Why Use Binary Trees?
pagenum: 365; title: Slow Insertion in an Ordered Array
pagenum: 365; title: Slow Searching in a Linked List
pagenum: 366; title: Trees to the Rescue
pagenum: 366; title: What Is a Tree?
pagenum: 366; title: Tree Terminology
pagenum: 367; title: Path
pagenum: 368; title: Root
pagenum: 368; title: Parent
pagenum: 369; title: Child
pagenum: 369; title: Leaf
pagenum: 369; title: Subtree
pagenum: 369; title: Visiting
pagenum: 369; title: Traversing
pagenum: 369; title: Levels
pagenum: 369; title: Keys
pagenum: 369; title: Binary Trees
pagenum: 370; title: An Analogy
pagenum: 370; title: How Do Binary Search Trees Work?
pagenum: 371; title: The Binary Tree Workshop Applet
pagenum: 371; title: Representing the Tree in Java Code
pagenum: 373; title: Finding a Node
pagenum: 376; title: Using the Workshop Applet to Find a Node
pagenum: 376; title: Java Code for Finding a Node
pagenum: 377; title: Tree Efficiency
pagenum: 378; title: Inserting a Node
pagenum: 378; title: Using the Workshop Applet to Insert a Node
pagenum: 379; title: Java Code for Inserting a Node
pagenum: 379; title: Traversing the Tree
pagenum: 381; title: Inorder Traversal
pagenum: 381; title: Java Code for Traversing
pagenum: 382; title: Traversing a Three-Node Tree
pagenum: 382; title: Traversing with the Workshop Applet
pagenum: 384; title: Preorder and Postorder Traversals
pagenum: 385; title: Finding Maximum and Minimum Values
pagenum: 388; title: Deleting a Node
pagenum: 389; title: Case 1: The Node Has No Children
pagenum: 389; title: Case 2: The Node Has One Child
pagenum: 391; title: Case 3: The Node Has Two Children
pagenum: 393; title: The Efficiency of Binary Trees
pagenum: 401; title: Trees Represented as Arrays
pagenum: 403; title: Duplicate Keys
pagenum: 404; title: The Complete tree.java Program
pagenum: 405; title: The Huffman Code
pagenum: 415; title: Character Codes
pagenum: 415; title: Decoding with the Huffman Tree
pagenum: 417; title: Creating the Huffman Tree
pagenum: 418; title: Coding the Message
pagenum: 420; title: Creating the Huffman Code
pagenum: 421; title: Summary
pagenum: 422; title: Questions
pagenum: 423; title: Experiments
pagenum: 425; title: Programming Projects
pagenum: 425; label: 9
title: Red-Black Trees
pagenum: 429; title: Our Approach to the Discussion
pagenum: 429; title: Conceptual
pagenum: 430; title: Top-Down Insertion
pagenum: 430; title: Balanced and Unbalanced Trees
pagenum: 430; title: Degenerates to O(N)
pagenum: 431; title: Balance to the Rescue
pagenum: 432; title: Red-Black Tree Characteristics
pagenum: 432; title: Fixing Rule Violations
pagenum: 434; title: Using the RBTree Workshop Applet
pagenum: 434; title: Clicking on a Node
pagenum: 435; title: The Start Button
pagenum: 435; title: The Ins Button
pagenum: 435; title: The Del Button
pagenum: 436; title: The Flip Button
pagenum: 436; title: The RoL Button
pagenum: 436; title: The RoR Button
pagenum: 436; title: The R/B Button
pagenum: 436; title: Text Messages
pagenum: 437; title: Where's the Find Button?
pagenum: 437; title: Experimenting with the Workshop Applet
pagenum: 437; title: Experiment 1: Inserting Two Red Nodes
pagenum: 437; title: Experiment 2: Rotations
pagenum: 438; title: Experiment 3: Color Flips
pagenum: 439; title: Experiment 4: An Unbalanced Tree
pagenum: 439; title: More Experiments
pagenum: 440; title: The Red-Black Rules and Balanced Trees
pagenum: 440; title: Null Children
pagenum: 441; title: Rotations
pagenum: 441; title: Simple Rotations
pagenum: 442; title: The Weird Crossover Node
pagenum: 442; title: Subtrees on the Move
pagenum: 444; title: Human Beings Versus Computers
pagenum: 445; title: Inserting a New Node
pagenum: 445; title: Preview of the Insertion Process
pagenum: 446; title: Color Flips on the Way Down
pagenum: 446; title: Rotations After the Node Is Inserted
pagenum: 448; title: Rotations on the Way Down
pagenum: 454; title: Deletion
pagenum: 457; title: The Efficiency of Red-Black Trees
pagenum: 457; title: Red-Black Tree Implementation
pagenum: 458; title: Other Balanced Trees
pagenum: 458; title: Summary
pagenum: 459; title: Questions
pagenum: 460; title: Experiments
pagenum: 462; label: 10
title: 2-3-4 Trees and External Storage
pagenum: 463; title: Introduction to 2-3-4 Trees
pagenum: 463; title: What's in a Name?
pagenum: 464; title: 2-3-4 Tree Organization
pagenum: 465; title: Searching a 2-3-4 Tree
pagenum: 466; title: Insertion
pagenum: 466; title: Node Splits
pagenum: 467; title: Splitting the Root
pagenum: 468; title: Splitting on the Way Down
pagenum: 469; title: The Tree234 Workshop Applet
pagenum: 470; title: The Fill Button
pagenum: 471; title: The Find Button
pagenum: 471; title: The Ins Button
pagenum: 472; title: The Zoom Button
pagenum: 472; title: Viewing Different Nodes
pagenum: 473; title: Experiments
pagenum: 474; title: Java Code for a 2-3-4 Tree
pagenum: 475; title: The DataItem Class
pagenum: 475; title: The Node Class
pagenum: 475; title: The Tree234 Class
pagenum: 476; title: The Tree234App Class
pagenum: 477; title: The Complete tree234.java Program
pagenum: 478; title: 2-3-4 Trees and Red-Black Trees
pagenum: 486; title: Transformation from 2-3-4 to Red-Black
pagenum: 486; title: Operational Equivalence
pagenum: 488; title: Efficiency of 2-3-4 Trees
pagenum: 491; title: Speed
pagenum: 491; title: Storage Requirements
pagenum: 491; title: 2-3 Trees
pagenum: 492; title: Node Splits
pagenum: 492; title: Implementation
pagenum: 494; title: External Storage
pagenum: 496; title: Accessing External Data
pagenum: 496; title: Sequential Ordering
pagenum: 499; title: B-Trees
pagenum: 500; title: Indexing
pagenum: 506; title: Complex Search Criteria
pagenum: 509; title: Sorting External Files
pagenum: 509; title: Summary
pagenum: 513; title: Questions
pagenum: 514; title: Experiments
pagenum: 516; title: Programming Projects
pagenum: 516; label: 11
title: Hash Tables
pagenum: 519; title: Introduction to Hashing
pagenum: 520; title: Employee Numbers as Keys
pagenum: 520; title: A Dictionary
pagenum: 521; title: Hashing
pagenum: 525; title: Collisions
pagenum: 527; title: Open Addressing
pagenum: 528; title: Linear Probing
pagenum: 528; title: Java Code for a Linear Probe Hash Table
pagenum: 533; title: Quadratic Probing
pagenum: 542; title: Double Hashing
pagenum: 544; title: Separate Chaining
pagenum: 552; title: The HashChain Workshop Applet
pagenum: 552; title: Java Code for Separate Chaining
pagenum: 555; title: Hash Functions
pagenum: 561; title: Quick Computation
pagenum: 561; title: Random Keys
pagenum: 562; title: Non-Random Keys
pagenum: 562; title: Hashing Strings
pagenum: 563; title: Folding
pagenum: 566; title: Hashing Efficiency
pagenum: 566; title: Open Addressing
pagenum: 566; title: Separate Chaining
pagenum: 568; title: Open Addressing Versus Separate Chaining
pagenum: 570; title: Hashing and External Storage
pagenum: 571; title: Table of File Pointers
pagenum: 571; title: Non-Full Blocks
pagenum: 571; title: Full Blocks
pagenum: 572; title: Summary
pagenum: 573; title: Questions
pagenum: 574; title: Experiments
pagenum: 576; title: Programming Projects
pagenum: 577; label: 12
title: Heaps
pagenum: 579; title: Introduction to Heaps
pagenum: 580; title: Priority Queues, Heaps, and ADTs
pagenum: 581; title: Weakly Ordered
pagenum: 582; title: Removal
pagenum: 583; title: Insertion
pagenum: 585; title: Not Really Swapped
pagenum: 586; title: The Heap Workshop Applet
pagenum: 587; title: The Fill Button
pagenum: 587; title: The Change Button
pagenum: 588; title: The Remove Button
pagenum: 588; title: The Insert Button
pagenum: 588; title: Java Code for Heaps
pagenum: 588; title: Insertion
pagenum: 589; title: Removal
pagenum: 590; title: Key Change
pagenum: 591; title: The Array Size
pagenum: 592; title: The heap.java Program
pagenum: 592; title: Expanding the Heap Array
pagenum: 599; title: Efficiency of Heap Operations
pagenum: 599; title: A Tree-based Heap
pagenum: 600; title: Heapsort
pagenum: 601; title: Trickling Down in Place
pagenum: 602; title: Using the Same Array
pagenum: 604; title: The heapSort.java Program
pagenum: 605; title: The Efficiency of Heapsort
pagenum: 610; title: Summary
pagenum: 610; title: Questions
pagenum: 611; title: Experiments
pagenum: 612; title: Programming Projects
pagenum: 612; label: 13
title: Graphs
pagenum: 615; title: Introduction to Graphs
pagenum: 615; title: Definitions
pagenum: 616; title: Historical Note
pagenum: 618; title: Representing a Graph in a Program
pagenum: 619; title: Adding Vertices and Edges to a Graph
pagenum: 622; title: The Graph Class
pagenum: 622; title: Searches
pagenum: 623; title: Depth-First Search
pagenum: 625; title: Breadth-First Search
pagenum: 636; title: Minimum Spanning Trees
pagenum: 643; title: GraphN Workshop Applet
pagenum: 644; title: Java Code for the Minimum Spanning Tree
pagenum: 644; title: The mst.java Program
pagenum: 645; title: Topological Sorting with Directed Graphs
pagenum: 649; title: An Example: Course Prerequisites
pagenum: 649; title: Directed Graphs
pagenum: 650; title: Topological Sorting
pagenum: 651; title: The GraphD Workshop Applet
pagenum: 652; title: Cycles and Trees
pagenum: 653; title: Java Code
pagenum: 654; title: Connectivity in Directed Graphs
pagenum: 661; title: The Connectivity Table
pagenum: 662; title: Warshall's Algorithm
pagenum: 662; title: Implementation of Warshall's Algorithm
pagenum: 664; title: Summary
pagenum: 665; title: Questions
pagenum: 665; title: Experiments
pagenum: 667; title: Programming Projects
pagenum: 667; label: 14
title: Weighted Graphs
pagenum: 669; title: Minimum Spanning Tree with Weighted Graphs
pagenum: 669; title: An Example: Cable TV in the Jungle
pagenum: 670; title: The GraphW Workshop Applet
pagenum: 670; title: Send Out the Surveyors
pagenum: 672; title: Creating the Algorithm
pagenum: 676; title: Java Code
pagenum: 678; title: The mstw.java Program
pagenum: 681; title: The Shortest-Path Problem
pagenum: 687; title: The Railroad Line
pagenum: 687; title: Dijkstra's Algorithm
pagenum: 689; title: Agents and Train Rides
pagenum: 689; title: Using the GraphDW Workshop Applet
pagenum: 694; title: Java Code
pagenum: 698; title: The path.java Program
pagenum: 703; title: The All-Pairs Shortest-Path Problem
pagenum: 708; title: Efficiency
pagenum: 710; title: Intractable Problems
pagenum: 710; title: The Knight's Tour
pagenum: 711; title: The Traveling Salesman Problem
pagenum: 711; title: Hamiltonian Cycles
pagenum: 712; title: Summary
pagenum: 713; title: Questions
pagenum: 713; title: Experiments
pagenum: 715; title: Programming Projects
pagenum: 715; label: 15
title: When to Use What
pagenum: 717; title: General-Purpose Data Structures
pagenum: 717; title: Speed and Algorithms
pagenum: 718; title: Libraries
pagenum: 719; title: Arrays
pagenum: 720; title: Linked Lists
pagenum: 720; title: Binary Search Trees
pagenum: 720; title: Balanced Trees
pagenum: 721; title: Hash Tables
pagenum: 721; title: Comparing the General-Purpose Storage Structures
pagenum: 722; title: Special-Purpose Data Structures
pagenum: 722; title: Stack
pagenum: 723; title: Queue
pagenum: 723; title: Priority Queue
pagenum: 723; title: Comparison of Special-Purpose Structures
pagenum: 724; title: Sorting
pagenum: 724; title: Graphs
pagenum: 725; title: External Storage
pagenum: 725; title: Sequential Storage
pagenum: 726; title: Indexed Files
pagenum: 726; title: B-Trees
pagenum: 726; title: Hashing
pagenum: 727; title: Virtual Memory
pagenum: 727; title: Onward
pagenum: 728; title: Appendixes; label: A
title: Running the Workshop Applets and Example Programs
pagenum: 729; title: The Workshop Applets
pagenum: 729; title: The Example Programs
pagenum: 730; title: The Sun Microsystem's Software Development Kit
pagenum: 730; title: Command-line Programs
pagenum: 731; title: Setting the Path
pagenum: 731; title: Viewing the Workshop Applets
pagenum: 731; title: Operating the Workshop Applets
pagenum: 732; title: Running the Example Programs
pagenum: 732; title: Compiling the Example Programs
pagenum: 733; title: Editing the Source Code
pagenum: 733; title: Terminating the Example Programs
pagenum: 733; title: Multiple Class Files
pagenum: 733; title: Other Development Systems
pagenum: 734; label: B
title: Further Reading
pagenum: 735; title: Data Structures and Algorithms
pagenum: 735; title: Object-Oriented Programming Languages
pagenum: 736; title: Object-Oriented Design and Software Engineering
pagenum: 736; label: C
title: Answers to Questions
pagenum: 739; title: Chapter 1, Overview — Answers to Questions
pagenum: 739; title: Chapter 2, Arrays — Answers to Questions
pagenum: 739; title: Chapter 3, Simple Sorting — Answers to Questions
pagenum: 740; title: Chapter 4, Stacks and Queues — Answers to Questions
pagenum: 741; title: Chapter 5, Linked Lists — Answers to Questions
pagenum: 741; title: Chapter 6, Recursion — Answers to Questions
pagenum: 742; title: Chapter 7, Advanced Sorting — Answers to Questions
pagenum: 743; title: Chapter 8, Binary Trees — Answers to Questions
pagenum: 743; title: Chapter 9, Red-Black Trees — Answers to Questions
pagenum: 744; title: Chapter 10, 2-3-4 Trees and External Storage — Answers to Questions
pagenum: 745; title: Chapter 11, Hash Tables — Answers to Questions
pagenum: 745; title: Chapter 12, Heaps — Answers to Questions
pagenum: 746; title: Chapter 13, Graphs — Answers to Questions
pagenum: 746; title: Chapter 14, Weighted Graphs — Answers to Questions
pagenum: 747