Dedication
Inside Cover
Impressum
Preface
Procedure for Reading This Set of Books
Notes on the Exercises
Contents
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 applications
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 (Section 1.4)
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 (Section 2.3.4)
2.3.5
Lists and Garbage Collection
2.4
Multilinked Structures
2.5
Dynamic Storage Allocation
2.6
History and Bibliography (Chapter 2)
Appendix A - Index to Notations
Appendix B - Tables of Numerical Quantities
Index and Glossary