От издателей русского перевода 1

От издателей русского перевода 1

О книге "Искусство программирования" 2

От редактора перевода 4

ПРЕДИСЛОВИЕ 5

Предисловие к третьему изданию 11

Процедура чтения книг этой серии 14

ПРИМЕЧАНИЯ К УПРАЖНЕНИЯМ 16

ОСНОВНЫЕ ПОНЯТИЯ 19

1.1. алгоритмы 19

УПРАЖНЕНИЯ 28

1.2. МАТЕМАТИЧЕСКОЕ ВВЕДЕНИЕ 29

1.2.1. Математическая индукция 30

УПРАЖНЕНИЯ 38

1.2.2. Числа, степени и логарифмы 41

УПРАЖНЕНИЯ 46

1.2.3. Суммы и произведения 48

УПРАЖНЕНИЯ (часть 2) 58

1.2.4. Целочисленные функции и элементарная теория чисел 60

УПРАЖНЕНИЯ 63

1.2.5. Перестановки и факториалы 67

1.2.6. Биномиальные коэффициенты 74

УПРАЖНЕНИЯ 92

1.2.7. гармонические числа 97

УПРАЖНЕНИЯ 100

1.2.8. Числа Фибоначчи 101

УПРАЖНЕНИЯ 106

1.2.9. Производящие функции 110

УПРАЖНЕНИЯ 117

1.2.10. Анализ алгоритма 119

УПРАЖНЕНИЯ 128

*1.2.11. Асимптотические представления 130

*1.2.11.1. СИМВОЛ 0. 130

УПРАЖНЕНИЯ 134

*1.2.11.2. Формула суммирования Эйлера. 135

УПРАЖНЕНИЯ 139

*1.2.11.3. Применение асимптотических формул. 140

УПРАЖНЕНИЯ 145

1.3. MIX 148

1.3.1. Описание MIX 158

УПРАЖНЕНИЯ 166

1.3.2. Язык ассемблера компьютера MIX 170

УПРАЖНЕНИЯ (часть 1) 182

УПРАЖНЕНИЯ (часть 2) 183

1.3.3. Применение к перестановкам 190

УПРАЖНЕНИЯ 209

1.4. НЕКОТОРЫЕ ФУНДАМЕНТАЛЬНЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ  213

1.4.1. Подпрограммы 213

УПРАЖНЕНИЯ 220

1.4.2. Сопрограммы 221

 УПРАЖНЕНИЯ 228

1.4.3. Программы интерпретаторы 229

1.4.3.1. Имитатор MIX. 231

УПРАЖНЕНИЯ 240

*1.4.3.2. Программы трассировки. 240

1.4.4. ВВОД и ВЫВОД 243

УПРАЖНЕНИЯ 255

1.4.5. История и библиография 258

ГЛАВА 2

ИНФОРМАЦИОННЫЕ СТРУКТУРЫ 262

2.1. ВВЕДЕНИЕ 262

УПРАЖНЕНИЯ 267

2.2. ЛИНЕЙНЫЕ СПИСКИ  268

2.2.1. Стеки, очереди  и деки 268

УПРАЖНЕНИЯ 272

2.2.2. Последовательное распределение 274

УПРАЖНЕНИЯ 282

2.2.3. Связанное распределение 286

УПРАЖНЕНИЯ 301

2.2.4. Циклические списки 306

УПРАЖНЕНИЯ 311

2.2.5. Дважды связанные списки 313

УПРАЖНЕНИЯ 330

2.2.6. Массивы и ортогональные списки 332

УПРАЖНЕНИЯ 339

2.3. ДЕРЕВЬЯ 343

УПРАЖНЕНИЯ 352

2.3.1. Обход бинарных деревьев 353

УПРАЖНЕНИЯ 367

2.3.2. Представление деревьев в виде бинарных деревьев 371

УПРАЖНЕНИЯ 383

2.3.3. Другие представления деревьев 386

УПРАЖНЕНИЯ 397

2.3.4. Основные математические свойства деревьев 401

2.3.4.1. Свободные деревья. 401

УПРАЖНЕНИЯ 408

2.3.4.2. Ориентированные деревья. 411

УПРАЖНЕНИЯ 416

*2.3.4.3. Лемма о бесконечном дереве. 422

УПРАЖНЕНИЯ 424

*2.3.4.4. Перечисление деревьев. 426

УПРАЖНЕНИЯ 436

2.3.4.5. Длина пути. 440

УПРАЖНЕНИЯ 445

*2.3.4.6. История и библиография. 447

УПРАЖНЕНИЯ 449

2.3.5. Списки и "сборка мусора" 450

УПРАЖНЕНИЯ 464

2.4. МНОГОСВЯЗНЫЕ СТРУКТУРЫ 467

УПРАЖНЕНИЯ 476

2.5. ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ ПАМЯТИ 479

А. Резервирование. 479

В. Освобождение. 482

С. "Система двойников". 486

*Е. Метод распределённого подходящего. 495

F. Переполнение. 497

УПРАЖНЕНИЯ 498

2.6. ИСТОРИЯ И БИБЛИОГРАФИЯ  503

ОТВЕТЫ К УПРАЖНЕНИЯМ 512

РАЗДЕЛ 1.2.1 514

РАЗДЕЛ 1.2.2 515

РАЗДЕЛ 1.2.3 517

РАЗДЕЛ 1.2.4 522

РАЗДЕЛ 1.2.5 527

РАЗДЕЛ 1.2.6 530

РАЗДЕЛ 1.2.7 539

РАЗДЕЛ 1.2.8 540

РАЗДЕЛ 1.2.9 544

РАЗДЕЛ 1.2.10 547

РАЗДЕЛ 1.2.11.1 550

РАЗДЕЛ 1.2.11.2 551

РАЗДЕЛ 1.2.11.3 552

РАЗДЕЛ 1.3.1 555

РАЗДЕЛ 1.3.2 559

РАЗДЕЛ 1.3.3 570

РАЗДЕЛ 1.4.1 576

РАЗДЕЛ 1.4.2 577

РАЗДЕЛ 1.4.3.1 578

РАЗДЕЛ 1.4.3.2 579

РАЗДЕЛ 1.4.4 580

РАЗДЕЛ 2.2.1 584

РАЗДЕЛ 2.2.2 589

РАЗДЕЛ 2.2.3 594

РАЗДЕЛ 2.2.4 601

РАЗДЕЛ 2.2.5 603

РАЗДЕЛ 2.2.6 606

РАЗДЕЛ 2.3 611

РАЗДЕЛ 2.3.1 614

РАЗДЕЛ 2.3.2 623

РАЗДЕЛ 2.3.3 627

РАЗДЕЛ 2.3.4.1 630

РАЗДЕЛ 2.3.4.2 632

РАЗДЕЛ 2.3.4.3 639

РАЗДЕЛ 2.3.4.4 641

РАЗДЕЛ 2.3.4.5 648

РАЗДЕЛ 2.3.4.6 650

РАЗДЕЛ 2.3.5 655

РАЗДЕЛ 2.4 659

РАЗДЕЛ 2.5 661

ПРИЛОЖЕНИЕ А

ТАБЛИЦЫ ЗНАЧЕНИЙ НЕКОТОРЫХ КОНСТАНТ  674

ПРИЛОЖЕНИЕ Б

ОСНОВНЫЕ ОБОЗНАЧЕНИЯ 678

Д.Э. Кнут "Искусство программирования" том 1 "Основные алгоритмы. Основные понятия. Информационные структуры."