Data structures and algorithms in Java
By: Adam Drozdek.
Publisher: Brooks/Cole Pub.
Published: 2001
Place of publication: Pacific Grove, CA
Language: eng
Number of pages: 622
Subjects: Java (Computer program language); Data structures (Computer science); Computer algorithms
Table of contents: label: 1
title: Object-Oriented Programming Using Java
pagenum: 1; label: 1.1
title: Rudimentary Java
pagenum: 1; label: 1.1.1
title: Variable Declarations
pagenum: 1; label: 1.1.2
title: Operators
pagenum: 4; label: 1.1.3
title: Decision Statements
pagenum: 5; label: 1.1.4
title: Loops
pagenum: 6; label: 1.1.5
title: Exception Handling
pagenum: 6; label: 1.2
title: Object-Oriented Programming in Java
pagenum: 8; label: 1.2.1
title: Encapsulation
pagenum: 8; label: 1.2.2
title: Abstract Data Types
pagenum: 14; label: 1.2.3
title: Inheritance
pagenum: 15; label: 1.2.4
title: Polymorphism
pagenum: 18; label: 1.3
title: Input and Output
pagenum: 21; label: 1.4
title: Java and Pointers
pagenum: 24; label: 1.5
title: Vectors in java.util
pagenum: 28; label: 1.6
title: Data Structures and Object-Oriented Programming
pagenum: 34; label: 1.7
title: Case Study: Random Access File
pagenum: 35; label: 1.8
title: Exercises
pagenum: 43; label: 1.9
title: Programming Assignments
pagenum: 45; label: 2
title: Complexity Analysis
pagenum: 49; label: 2.1
title: Computational and Asymptotic Complexity
pagenum: 49; label: 2.2
title: Big-O Notation
pagenum: 50; label: 2.3
title: Properties of Big-O Notation
pagenum: 53; label: 2.4
title: Ω and Q Notations
pagenum: 54; label: 2.5
title: Possible Problems
pagenum: 55; label: 2.6
title: Examples of Complexities
pagenum: 56; label: 2.7
title: Finding Asymptotic Complexity: Examples
pagenum: 57; label: 2.8
title: The Best, Average, and Worst Cases
pagenum: 59; label: 2.9
title: Amortized Complexity
pagenum: 62; label: 2.10
title: Exercises
pagenum: 67; label: 3
title: Linked Lists
pagenum: 71; label: 3.1
title: Singly Linked Lists
pagenum: 71; label: 3.1.1
title: Insertion
pagenum: 77; label: 3.1.2
title: Deletion
pagenum: 79; label: 3.1.3
title: Search
pagenum: 84; label: 3.2
title: Doubly Linked Lists
pagenum: 86; label: 3.3
title: Circular Lists
pagenum: 90; label: 3.4
title: Skip Lists
pagenum: 92; label: 3.5
title: Self-Organizing Lists
pagenum: 98; label: 3.6
title: Sparse Tables
pagenum: 102; label: 3.7
title: Linked Lists in java.util
pagenum: 106; label: 3.8
title: Concluding Remarks
pagenum: 111; label: 3.9
title: Case Study: A Library
pagenum: 112; label: 3.10
title: Exercises
pagenum: 121; label: 3.11
title: Programming Assignments
pagenum: 123; label: 4
title: Stacks and Queues
pagenum: 129; label: 4.1
title: Stacks
pagenum: 129; label: 4.1.1
title: Stacks in java.util
pagenum: 137; label: 4.2
title: Queues
pagenum: 138; label: 4.3
title: Priority Queues
pagenum: 147; label: 4.4
title: Case Study: Exiting a Maze
pagenum: 148; label: 4.5
title: Exercises
pagenum: 153; label: 4.6
title: Programming Assignments
pagenum: 156; label: 5
title: Recursion
pagenum: 159; label: 5.1
title: Recursive Definitions
pagenum: 159; label: 5.2
title: Method Calls and Recursion Implementation
pagenum: 162; label: 5.3
title: Anatomy of a Recursive Call
pagenum: 164; label: 5.4
title: Tail Recursion
pagenum: 168; label: 5.5
title: Nontail Recursion
pagenum: 169; label: 5.6
title: Indirect Recursion
pagenum: 174; label: 5.7
title: Nested Recursion
pagenum: 176; label: 5.8
title: Excessive Recursion
pagenum: 177; label: 5.9
title: Backtracking
pagenum: 180; label: 5.10
title: Concluding Remarks
pagenum: 187; label: 5.11
title: Case Study: A Recursive Descent Interpreter
pagenum: 188; label: 5.12
title: Exercises
pagenum: 196; label: 5.13
title: Programming Assignments
pagenum: 199; label: 6
title: Binary Trees
pagenum: 203; label: 6.1
title: Trees, Binary Trees, and Binary Search Trees
pagenum: 203; label: 6.2
title: Implementing Binary Trees
pagenum: 208; label: 6.3
title: Searching a Binary Search Tree
pagenum: 210; label: 6.4
title: Tree Traversal
pagenum: 212; label: 6.4.1
title: Breadth-First Traversal
pagenum: 213; label: 6.4.2
title: Depth-First Traversal
pagenum: 213; label: 6.4.3
title: Stackless Depth-First Traversal
pagenum: 221; label: 6.5
title: Insertion
pagenum: 228; label: 6.6
title: Deletion
pagenum: 231; label: 6.6.1
title: Deletion by Merging
pagenum: 232; label: 6.6.2
title: Deletion by Copying
pagenum: 235; label: 6.7
title: Balancing a Tree
pagenum: 238; label: 6.7.1
title: The DSW Algorithm
pagenum: 241; label: 6.7.2
title: AVL Trees
pagenum: 243; label: 6.8
title: Self-Adjusting Trees
pagenum: 249; label: 6.8.1
title: Self-Restructuring Trees
pagenum: 250; label: 6.8.2
title: Splaying
pagenum: 251; label: 6.9
title: Heaps
pagenum: 256; label: 6.9.1
title: Heaps as Priority Queues
pagenum: 258; label: 6.9.2
title: Organizing Arrays as Heaps
pagenum: 261; label: 6.10
title: Polish Notation and Expression Trees
pagenum: 265; label: 6.10.1
title: Operations on Expression Trees
pagenum: 266; label: 6.11
title: Case Study: Computing Word Frequencies
pagenum: 270; label: 6.12
title: Exercises
pagenum: 276; label: 6.13
title: Programming Assignments
pagenum: 280; label: 7
title: Multiway Trees
pagenum: 287; label: 7.1
title: The Family of B-Trees
pagenum: 288; label: 7.1.1
title: B-Trees
pagenum: 289; label: 7.1.2
title: B*-Trees
pagenum: 300; label: 7.1.3
title: B+ -Trees
pagenum: 301; label: 7.1.4
title: Prefix B+-Trees
pagenum: 304; label: 7.1.5
title: Bit-Trees
pagenum: 305; label: 7.1.6
title: R-Trees
pagenum: 308; label: 7.1.7
title: 2-4 Trees
pagenum: 311; label: 7.1.8
title: Sets in java.util
pagenum: 319; label: 7.1.9
title: Maps in java.util
pagenum: 325; label: 7.2
title: Tries
pagenum: 328; label: 7.3
title: Concluding Remarks
pagenum: 337; label: 7.4
title: Case Study: Spell Checker
pagenum: 337; label: 7.5
title: Exercises
pagenum: 348; label: 7.6
title: Programming Assignments
pagenum: 349; label: 8
title: Graphs
pagenum: 355; label: 8.1
title: Graph Representation
pagenum: 357; label: 8.2
title: Graph Traversals
pagenum: 357; label: 8.3
title: Shortest Paths
pagenum: 362; label: 8.3.1
title: All-to-All Shortest Path Problem
pagenum: 369; label: 8.4
title: Cycle Detection
pagenum: 372; label: 8.4.1
title: Union-Find Problem
pagenum: 372; label: 8.5
title: Spanning Trees
pagenum: 375; label: 8.5.1
title: Borůvka's Algorithm
pagenum: 376; label: 8.5.2
title: Kruskal's Algorithm
pagenum: 377; label: 8.5.3
title: Jarník-Prim's Algorithm
pagenum: 377; label: 8.5.4
title: Dijkstra's Method
pagenum: 380; label: 8.6
title: Connectivity
pagenum: 380; label: 8.6.1
title: Connectivity in Undirected Graphs
pagenum: 381; label: 8.6.2
title: Connectivity in Directed Graphs
pagenum: 384; label: 8.7
title: Topological Sort
pagenum: 386; label: 8.8
title: Networks
pagenum: 388; label: 8.8.1
title: Maximum Flows
pagenum: 388; label: 8.8.2
title: Maximum Flows of Minimum Cost
pagenum: 398; label: 8.9
title: Matching
pagenum: 401; label: 8.9.1
title: Assignment Problem
pagenum: 408; label: 8.9.2
title: Matching in Nonbipartite Graphs
pagenum: 410; label: 8.10
title: Eulerian and Hamiltonian Graphs
pagenum: 412; label: 8.10.1
title: Eulerian Graphs
pagenum: 412; label: 8.10.2
title: Hamiltonian Graphs
pagenum: 413; label: 8.11
title: Case Study: Distinct Representatives
pagenum: 416; label: 8.12
title: Exercises
pagenum: 425; label: 8.13
title: Programming Assignments
pagenum: 428; label: 9
title: Sorting
pagenum: 433; label: 9.1
title: Elementary Sorting Algorithms
pagenum: 434; label: 9.1.1
title: Insertion Sort
pagenum: 434; label: 9.1.2
title: Selection Sort
pagenum: 438; label: 9.1.3
title: Bubble Sort
pagenum: 439; label: 9.2
title: Decision Trees
pagenum: 441; label: 9.3
title: Efficient Sorting Algorithms
pagenum: 445; label: 9.3.1
title: Shell Sort
pagenum: 445; label: 9.3.2
title: Heap Sort
pagenum: 448; label: 9.3.3
title: Quicksort
pagenum: 452; label: 9.3.4
title: Mergesort
pagenum: 458; label: 9.3.5
title: Radix Sort
pagenum: 461; label: 9.4
title: Sorting in java.util
pagenum: 466; label: 9.5
title: Concluding Remarks
pagenum: 469; label: 9.6
title: Case Study: Adding Polynomials
pagenum: 471; label: 9.7
title: Exercises
pagenum: 478; label: 9.8
title: Programming Assignments
pagenum: 480; label: 10
title: Hashing
pagenum: 483; label: 10.1
title: Hash Functions
pagenum: 484; label: 10.1.1
title: Division
pagenum: 484; label: 10.1.2
title: Folding
pagenum: 484; label: 10.1.3
title: Mid-Square Function
pagenum: 485; label: 10.1.4
title: Extraction
pagenum: 485; label: 10.1.5
title: Radix Transformation
pagenum: 486; label: 10.2
title: Collision Resolution
pagenum: 486; label: 10.2.1
title: Open Addressing
pagenum: 487; label: 10.2.2
title: Chaining
pagenum: 492; label: 10.2.3
title: Bucket Addressing
pagenum: 495; label: 10.3
title: Deletion
pagenum: 496; label: 10.4
title: Perfect Hash Functions
pagenum: 497; label: 10.4.1
title: Cichelli's Method
pagenum: 498; label: 10.4.2
title: The FHCD Algorithm
pagenum: 500; label: 10.5
title: Hash Functions for Extendible Files
pagenum: 503; label: 10.5.1
title: Extendible Hashing
pagenum: 503; label: 10.5.2
title: Linear Hashing
pagenum: 506; label: 10.6
title: Hashing in java.util
pagenum: 509; label: 10.7
title: Case Study: Hashing with Buckets
pagenum: 514; label: 10.8
title: Exercises
pagenum: 522; label: 10.9
title: Programming Assignments
pagenum: 523; label: 11
title: Data Compression
pagenum: 527; label: 11.1
title: Conditions for Data Compression
pagenum: 527; label: 11.2
title: Huffman Coding
pagenum: 529; label: 11.2.1
title: Adaptive Huffman Coding
pagenum: 539; label: 11.3
title: Shannon-Fano Code
pagenum: 543; label: 11.4
title: Run-Length Encoding
pagenum: 545; label: 11.5
title: Ziv-Lempel Code
pagenum: 546; label: 11.6
title: Case Study: Huffman Method with Run-Length Encoding
pagenum: 549; label: 11.7
title: Exercises
pagenum: 560; label: 11.8
title: Programming Assignments
pagenum: 561; label: 12
title: Memory Management
pagenum: 565; label: 12.1
title: The Sequential-Fit Methods
pagenum: 566; label: 12.2
title: The Nonsequential-Fit Methods
pagenum: 567; label: 12.2.1
title: Buddy Systems
pagenum: 569; label: 12.3
title: Garbage Collection
pagenum: 576; label: 12.3.1
title: Mark-and-Sweep
pagenum: 577; label: 12.3.2
title: Copying Methods
pagenum: 584; label: 12.3.3
title: Incremental Garbage Collection
pagenum: 586; label: 12.4
title: Concluding Remarks
pagenum: 594; label: 12.5
title: Case Study: An In-Place Garbage Collector
pagenum: 595; label: 12.6
title: Exercises
pagenum: 603; label: 12.7
title: Programming Assignments
pagenum: 604; label: Appendix A
title: Computing Big-O
pagenum: 609; label: A.1
title: Harmonic Series
pagenum: 609; label: A.2
title: Approximation of the Function lg(n!)
pagenum: 609; label: A.3
title: Big-O for Average Case of Quicksort
pagenum: 611; label: A.4
title: Average Path Length in a Random Binary Tree
pagenum: 613; title: Name Index
pagenum: 615; title: Subject Index
pagenum: 619