Chapter1 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 Fun tions and Elementary Number Theory
1.2.5 Permutations andcFa torials
1.2.6 Binomial Coefficients
1.2.7 Harmonic Numbers
1.2.8 Fibonacci Numbers
1.2.9 Generating Fun tions
1.2.10 Analysis of anc Algorithm
1.2.11 Asymptotic Representation
1.2.11.1 The O-notation
1.2.11.2 Euler's summation formul
1.2.11.3 Some asymptotic calculations
1.3 MIX
1.3.1 Description of MIX
1.3.2 ThecMIX 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
Chapter2--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 Freectrees
2.3.4.2 Orientedctrees
2.3.4.3 The "infinityclemma"
2.3.4.4 Enumeration of trees
2.3.4.5 Pathclength
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, FibonaccicNumbers
Appendix B Indexcto Notations
Index and Glossary