Chapter 1—Basic Concepts 1
1.1.Algorithms 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.Asymptotic Representations 107
1.2.11.1.The O-notation 107
1.2.11.2.Euler's summation formula 111
1.2.11.3.Some asymptotic calculations 116
1.3.MIX 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
Chapter 2—Information Structures 232
2.1.Introduction 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