Chapter 1-Basic Concepts 1
1.1. Algocrithms 1
1.2. Mathematical Preliminaries 10
1.2.1. Mathematical Induction 11
1.2.2. Numbers,Powers,and Logarithms 21
1.2.3. Sums and Products 27
1.2.4. Integer Functions and Elementary Number Theory 39
1.2.5. Permutations and Factorials 45
1.2.6. Binomial Coefficients 52
1.2.7. Harmonic Numbers 75
1.2.8. Fibonacci Numbers 79
1.2.9. Generating Functions 87
1.2.10. Analysis of an Algorithm 96
1.2.11.1. The O-notation 107
1.2.11. Asymptotic Representations 107
1.2.11.2. Euler s summation formula 111
1.2.11.3. Some asymptotic calculations 116
1.3. NIX 124
1.3.1. Description of MIX 124
1.3.2. The MIX Assembly Language 144
1.3.3. Applications to Permutations 164
1.4. Some Fundamental Programming Techniques 186
1.4.1. Subroutines 186
1.4.2. Coroutines 193
1.4.3. Interpretive Routines 200
1.4.3.1. A MIX simulator 202
1.4.3.2. Trace routines 212
1.4.4. Input and Output 215
1.4.5. History and Bibliography 229
2.1. Introduction 232
Chapter 2-Information Structures 232
2.2. Linear Lists 238
2.2.1. Stacks,Queues,and Deques 238
2.2.2. Sequential Allocation 244
2.2.3. Linked Allocation 254
2.2.4. Circular Lists 273
2.2.5. Doubly Linked Lists 280
2.2.6. Arrays and Orthogonal Lists 298
2.3. Trees 308
2.3.1. Traversing Binary Trees 318
2.3.2. Binary Tree Representation of Trees 334
2.3.3. Other Representations of Trees 348
2.3.4. Basic Mathematical Properties of Trees 362
2.3.4.1. Free trees 363
2.3.4.2. Oriented trees 372
2.3.4.3. The infinity lemma 382
2.3.4.4. Enumeration of trees 386
2.3.4.5. Path length 399
2.3.4.6. History and bibliography 406
2.3.5. Lists and Garbage Collection 408
2.4.Multilinked Structures 424
2.5.Dynamic Storage Allocation 435
2.6. History and Bibliography 457
Answers to Exercises 466
Appendix A-Tables of Numerical Quantities 619
1. Fundamental Constants(decimal) 619
2. Fundamental Constants(octal) 620
3. Harmonic Numbers,Bernoulli Numbers,Fibonacci Numbers 621
Appendix B-Index to Notations 623
Index and Glossary 628