Lists 2.2.1. Stacks, Queues, and Deques 2.2.2. Sequential Allocation 2.2.3. Linked Allocation (topological sorting) 2.2.4. Circular Lists 2.2.5. Doubly Linked Lists 2.2.6. Arrays and Orthogonal Lists 2.3. Trees 2.3.1. Traversing Binary Trees 2.3.2. Binary Tree Representation of Trees 2.3.3. Other Representations of Trees 2.3.4. Basic Mathematical Properties of Trees 2.3.4.1. Free trees 2.3.4.2. Oriented trees 2.3.4.3. The "infinity lemma" 2.3.4.4. Enumeration of trees 2.3.4.5. Path length 2.3.4.6. History and bibliography 2.3.5. Lists and Garbage Collection 2.4. Multilinked Structures 2.5. Dynamic Storage Allocation 2.6. History and Bibliography Volume 2 – Seminumerical Algorithms Chapter 3 – Random Numbers 3.1. Introduction 3.2. Generating Uniform Random Numbers 3.2.1. The Linear Congruential Method 3.2.1.1. Choice of modulus 3.2.1.2. Choice of multiplier 3.2.1.3. Potency 3.2.2. Other Methods 3.3. Statistical Tests 3.3.1. General Test Procedures for Studying Random Data 3.3.2. Empirical Tests 3.3.3. Theoretical Tests 3.3.4. The Spectral Test 3.4. Other Types of Random Quantities 3.4.1. Numerical Distributions 3.4.2. Random Sampling and Shuffling 3.5. What Is a Random Sequence? 3.6. Summary Chapter 4 – Arithmetic 4.1. Positional Number Systems 4.2. Floating Point Arithmetic 4.2.1. Single-Precision Calculations 4.2.2. Accuracy of Floating Point Arithmetic 4.2.3. Double-Precision Calculations 4.2.4. Distribution of Floating Point Numbers 4.3. Multiple Precision Arithmetic 4.3.1. The Classical Algorithms 4.3.2. Modular Arithmetic 4.3.3. How Fast Can We Multiply? 4.4. Radix Conversion 4.5. Rational Arithmetic 4.5.1. Fractions 4.5.2. The Greatest Common Divisor 4.5.3. Analysis of Euclid's Algorithm 4.5.4. Factoring into Primes 4.6. Polynomial Arithmetic 4.6.1. Division of Polynomials 4.6.2. Factorization of Polynomials 4.6.3. Evaluation of Powers (addition-chain exponentiation) 4.6.4. Evaluation of Polynomials 4.7. Manipulation of Power Series Volume 3 – Sorting and Searching Chapter 5 – Sorting 5.1. Combinatorial Properties of Permutations 5.1.1. Inversions 5.1.2. Permutations of a Multiset 5.1.3. Runs 5.1.4. Tableaux and Involutions 5.2. Internal sorting 5.2.1. Sorting by Insertion 5.2.2. Sorting by Exchanging 5.2.3. Sorting by Selection 5.2.4. Sorting by Merging 5.2.5. Sorting by Distribution 5.3. Optimum Sorting 5.3.1. Minimum-Comparison Sorting 5.3.2. Minimum-Comparison Merging 5.3.3. Minimum-Comparison Selection 5.3.4. Networks for Sorting 5.4. External Sorting 5.4.1. Multiway Merging and Replacement Selection 5.4.2. The Polyphase Merge 5.4.3. The Cascade Merge 5.4.4. Reading Tape Backwards 5.4.5. The Oscillating Sort 5.4.6. Practical Considerations for Tape Merging 5.4.7. External Radix Sorting 5.4.8. Two-Tape Sorting 5.4.9. Disks and Drums 5.5. Summary, History, and Bibliography Chapter 6 – Searching 6.1. Sequential Searching 6.2. Searching by Comparison of Keys 6.2.1. Searching an Ordered Table 6.2.2. Binary Tree Searching 6.2.3. Balanced Trees 6.2.4. Multiway