Book:Donald E. Knuth/The Art of Computer Programming: Volume 1: Fundamental Algorithms/Third Edition
Jump to navigation
Jump to search
Donald E. Knuth: The Art of Computer Programming: Volume 1: Fundamental Algorithms (3rd Edition)
Published $\text {1997}$, Addison-Wesley
- ISBN 0-201-89683-4
Subject Matter
Contents
- Preface
- Preface to the Third Edition (Stanford, California, April 1997)
- Procedure for Reading This Set of Books
- Notes on the Exercises
- Chapter 1 Basic Concepts
- 1.1. Algorithms
- 1.2. Mathematical Preliminaries
- 1.2.1. Mathematical Induction
- 1.2.2, Numbers, Powers, and Logarithms
- 1.2.3. Sums and Products
- 1.2.4. Integer Functions and Elementary Number Theory
- 1.2.5. Permutations and Factorials
- 1.2.6. Binomial Coefficients
- 1.2.7. Harmonic Numbers
- 1.2.8. Fibonacci Numbers
- 1.2.9. Generating Functions
- 1.2.10. Analysis of an Algorithm
- *1.2.11. Asymptotic Representations
- *1.2.11.1. The $O$-notation
- *1.2.11.2. Euler's summation formula
- *1.2.11.3. Some asymptotic calculations
- 1.3. MIX
- 1.3.1. Description of MIX
- 1.3.2. The MIX Assembly Language
- 1.3.3. Applications to Permutations
- 1.4. Some Fundamental Programming Techniques
- 1.4.1. Subroutines
- 1.4.2. Coroutines
- 1.4.3. Interpretive Routines
- 1.4.3.1. A MIX simulator
- *1.4.3.2. Trace routines
- 1.4.4. Input and Output
- 1.4.5. History and Bibliography
- Chapter 2 - Information Structures
- 2.1. Introduction
- 2.2. Linear Lists
- 2.2.1. Stacks, Queues and Deques
- 2.2.2. Sequential Allocation
- 2.2.3. Linked Allocation
- 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
- Answers to Exercises
- Appendix A - Tables of Numerical Quantities
- 1. Fundamental Constants (decimal)
- 2. Fundamental Constants (octal)
- 3. Harmonic Numbers, Bernoulli Numbers, Fibonacci Numbers
- Appendix B - Index to Notations
- Index and Glossary
Errata
Hurwitz's Generalisation of Binomial Theorem
$2.3.4.4.$ Enumeration of Trees: Exercise $30$: Solution
- Use this to prove Hurwitz' generalization of the binomial theorem:
- $\ds \sum x \paren {x + \epsilon_1 z_1 + \cdots + \epsilon_n z_n}^{\epsilon_1 + \cdots + \epsilon_n - 1} y \paren {y + \paren {1 - \epsilon_1} z_1 - \cdots + \paren {1 - \epsilon_n} z_n}^{n - \epsilon_1 - \cdots - \epsilon_n} = \paren {x + y} \paren {x + y + z_1 + \cdots + z_n}^{n - 1}$
Source work progress
From Next:
- 1997: Donald E. Knuth: The Art of Computer Programming: Volume 1: Fundamental Algorithms (3rd ed.) ... (previous) ... (next): $\S 2.3.4.1$: Free Trees
From start:
- 1997: Donald E. Knuth: The Art of Computer Programming: Volume 1: Fundamental Algorithms (3rd ed.) ... (previous) ... (next): $\S 1.2.9$: Generating Functions: Exercise $14$
- Mostly complete up to this point. Much of the detailed work on algorithms has been left undone.