- •X Предисловие
- •XII Предисловие
- •XVI Содержание
- •XVIII Содержание
- •XX Содержание
- •XXII Содержание
- •1.2. Выражения 17
- •1.2. Выражения 19
- •1.2. Выражения 21
- •1.3. Поток контроля 23
- •1.3. Поток контроля 25
- •1.4. Функции 27
- •1.4. Функции 29
- •1.4. Функции 31
- •1.5. Классы 33
- •1.5. Классы 35
- •1.5. Классы 37
- •1.5. Классы 39
- •1.5. Классы 41
- •1.5. Классы 43
- •1.5. Классы 45
- •1.8. Упражнения 61
- •1.8. Упражнения 63
- •66 Глава 2. Ориентированный на объект дизайн
- •2.1. Цели, принципы и образцы 67
- •68 Глава 2. Ориентированный на объект дизайн
- •2.1. Цели, принципы и образцы 69
- •70 Глава 2. Ориентированный на объект дизайн
- •2.2. Наследование и полиморфизм 71
- •Глава 2. Ориентированный на объект дизайн
- •2.2. Наследование и полиморфизм 73
- •Глава 2. Ориентированный на объект дизайн
- •2.2. Наследование и полиморфизм 75
- •2.2. Наследование и полиморфизм
- •Глава 2. Ориентированный на объект дизайн
- •2.2. Наследование и полиморфизм 79
- •Глава 2. Ориентированный на объект дизайн
- •2.2. Наследование и полиморфизм 81
- •82 Глава 2. Ориентированный на объект дизайн
- •2.2. Наследование и полиморфизм 83
- •Глава 2. Ориентированный на объект дизайн
- •2.2. Наследование и полиморфизм 85
- •2.2. Наследование и полиморфизм 87
- •Глава 2. Ориентированный на объект Дизайн определен как определение типа и коллекция членских функций для этого типа с аргументами в пользу каждой функции, являющейся указанных типов.
- •2.2. Наследование и полиморфизм 89
- •90 Глава 2. Ориентированный на объект дизайн
- •2.3. Шаблоны 91
- •2.4. Исключения 93
- •94 Глава 2. Ориентированный на объект дизайн
- •2.4. Исключения 95
- •2.4. Исключения 97
- •98 Глава 2. Ориентированный на объект дизайн
- •Раздел 2.2.3, чтобы найти 7-ю ценность прогрессии Фибоначчи, которая начинается с 3 и 4 как ее первые две ценности.
- •2.5. Упражнения 99
- •Глава 2. Ориентированный на объект дизайн
- •2.5. Упражнения 101
- •104 Глава 3. Множества, связанные списки и рекурсия
- •3.1. Используя множества 105
- •3.1. Используя множества 107
- •108 Глава 3. Множества, связанные списки и рекурсия
- •3.1. Используя множества 109
- •110 Глава 3. Множества, связанные списки и рекурсия
- •3.1. Используя множества 111
- •112 Глава 3. Множества, связанные списки и рекурсия
- •3.1. Используя множества 113
- •3.1. Используя множества 115
- •Глава 3. Множества, связанные списки и рекурсия
- •3.2. Отдельно связанные списки 117
- •Глава 3. Множества, связанные списки и рекурсия
- •3.2. Отдельно связанные списки 119
- •120 Глава 3. Множества, связанные списки и рекурсия
- •3.2. Отдельно связанные списки 121
- •122 Глава 3. Множества, связанные списки и рекурсия
- •3.3. Вдвойне связанные списки 123
- •124 Глава 3. Множества, связанные списки и рекурсия
- •3.3. Вдвойне связанные списки 125
- •3.3. Вдвойне связанные списки 127
- •Глава 3. Множества, связанные списки и рекурсия
- •3.4. Циркулярные связанные списки и аннулирование списка
- •Глава 3. Множества, связанные списки и рекурсия
- •3.4. Циркулярные связанные списки и аннулирование списка 131
- •Глава 3. Множества, связанные списки и рекурсия
- •3.4. Циркулярные связанные списки и аннулирование списка 133
- •134 Глава 3. Множества, связанные списки и рекурсия
- •3.5. Рекурсия 135
- •136 Глава 3. Множества, связанные списки и рекурсия
- •3.5. Рекурсия 137
- •Глава 3. Множества, связанные списки и рекурсия
- •3.5. Рекурсия 139
- •140 Глава 3. Множества, связанные списки и рекурсия
- •3.5. Рекурсия 141
- •142 Глава 3. Множества, связанные списки и рекурсия
- •3.5. Рекурсия 143
- •144 Глава 3. Множества, связанные списки и рекурсия
- •3.5. Рекурсия 145
- •Раздел 2.2.3, что Числа Фибоначчи рекурсивно определены следующим образом:
- •Глава 3. Множества, связанные списки и рекурсия
- •3.5. Рекурсия 147
- •148 Глава 3. Множества, связанные списки и рекурсия
- •3.6. Упражнения
- •Глава 3. Множества, связанные списки и рекурсия
- •3.6. Упражнения 151
- •Глава 3. Множества, связанные списки и рекурсия
- •Глава 4. Аналитические инструменты
- •4.1. Семь функций, используемых в этой книге 155
- •156 Глава 4. Аналитические инструменты
- •4.1. Семь функций, используемых в этой книге 157
- •Глава 4. Аналитические инструменты
- •4.1. Семь функций, используемых в этой книге 159
- •Глава 4. Аналитическое Суждение Инструментов 4.4 (Правила Образца): Учитывая положительные целые числа a, b, и c, мы имеем:
- •162 Глава 4. Аналитические инструменты
- •4.2. Анализ алгоритмов 163
- •164 Глава 4. Аналитические инструменты
- •166 Глава 4. Аналитические инструменты
- •Глава 4. Аналитические инструменты
- •4.2. Анализ алгоритмов 169
- •170 Глава 4. Аналитические инструменты
- •4.2. Анализ алгоритмов
- •172 Глава 4. Аналитические инструменты
- •4.2. Анализ алгоритмов 173
- •174 Глава 4. Аналитические инструменты
- •4.2. Анализ алгоритмов 175
- •176 Глава 4. Аналитические инструменты
- •4.2. Анализ алгоритмов 177
- •178 Глава 4. Аналитические инструменты
- •4.2. Анализ алгоритмов 179
- •180 Глава 4. Аналитические инструменты
- •4.3. Простые методы оправдания 181
- •182 Глава 4. Аналитические инструменты
- •4.3. Простые методы оправдания 183
- •184 Глава 4. Аналитические инструменты
- •4.4. Упражнения
- •186 Глава 4. Аналитические инструменты
- •4.4. Упражнения 187
- •Глава 4. Аналитические инструменты
- •4.4. Упражнения 189
- •Глава 4. Аналитические инструменты
- •4.4. Упражнения 191
- •192 Глава 4. Аналитические инструменты
- •194 Глава 5. Стеки, очереди и Deques
- •5.1. Стеки 195
- •196 Глава 5. Стеки, очереди и Deques
- •5.1. Стеки 197
- •Глава 5. Стеки, очереди и Deques
- •5.1. Стеки 199
- •Глава 5. Стеки, очереди и Deques
- •5.1. Стеки 201
- •Глава 5. Стеки, очереди и Deques
- •5.1. Стеки 203
- •204 Глава 5. Стеки, очереди и Deques
- •5.1. Стеки 205
- •Глава 5. Стеки, очереди и Deques
- •5.1. Стеки 207
- •5.2. Очереди
- •5.2. Очереди 211
- •Глава 5. Стеки, очереди и Deques
- •5.2. Очереди 213
- •Глава 5. Стеки, Очереди и Deques как фронт очереди и фронт круглого списка как задняя часть очереди?)
- •5.2. Очереди
- •Глава 5. Стеки, очереди и Deques
- •5.3. Симметричные очереди 217
- •218 Глава 5. Стеки, очереди и Deques
- •5.3. Симметричные очереди 219
- •220 Глава 5. Стеки, очереди и Deques
- •5.3. Симметричные очереди 221
- •Глава 5. Стеки, очереди и Deques
- •5.4. Упражнения
- •Глава 5. Стеки, очереди и Deques
- •5.4. Упражнения
- •Глава 5. Стеки, очереди и Deques
- •228 Глава 6. Список и Iterator adTs
- •6.1. Векторы 229
- •Глава 6. Список и Iterator adTs элемент, чей индекс I списка в индексе I во множестве a. (См. Рисунок 6.1.)
- •6.1. Векторы 231
- •232 Глава 6. Список и Iterator adTs
- •6.1. Векторы 233
- •Глава 6. Список и Iterator adTs
- •6.1. Векторы 235
- •236 Глава 6. Список и Iterator adTs
- •6.1. Векторы 237
- •238 Глава 6. Список и Iterator adTs
- •6.2. Списки 239
- •6.2. Списки 241
- •6.2. Списки
- •Глава 6. Список и Iterator adTs
- •6.2. Списки
- •246 Глава 6. Список и Iterator adTs
- •6.2. Списки
- •Глава 6. Список и Iterator adTs
- •6.2. Списки
- •250 Глава 6. Список и Iterator adTs
- •6.2. Списки
- •252 Глава 6. Список и Iterator adTs
- •6.2. Списки
- •6.3. Последовательности 255
- •6.3. Последовательности 257
- •Глава 6. Список и Iterator adTs
- •6.4. Тематическое исследование: вид пузыря на последовательности 259
- •Глава 6. Список и Iterator adTs
- •6.4. Тематическое исследование: вид пузыря на последовательности 261
- •262 Глава 6. Список и Iterator adTs
- •6.5. Упражнения 263
- •Глава 6. Список и Iterator adTs
- •6.5. Упражнения 265
- •268 Глава 7. Деревья
- •7.1. Общие деревья 269
- •270 Глава 7. Деревья
- •7.1. Общие деревья 271
- •272 Глава 7. Деревья
- •7.1. Общие деревья 273
- •274 Глава 7. Деревья
- •7.2. Алгоритмы пересечения дерева 275
- •276 Глава 7. Деревья
- •7.2. Алгоритмы пересечения дерева 277
- •278 Глава 7. Деревья
- •7.2. Алгоритмы пересечения дерева 279
- •Глава 7. Деревья
- •7.2. Алгоритмы пересечения дерева 281
- •282 Глава 7. Деревья
- •7.2. Алгоритмы пересечения дерева 283
- •284 Глава 7. Деревья
- •7.3. Двоичные деревья 285
- •7.3. Двоичные деревья 287
- •288 Глава 7. Деревья
- •7.3. Двоичные деревья 289
- •Глава 7. Деревья
- •7.3. Двоичные деревья 291
- •292 Глава 7. Деревья
- •7.3. Двоичные деревья 293
- •Глава 7. Деревья
- •7.3. Двоичные деревья
- •Глава 7. Деревья
- •7.3. Двоичные деревья
- •298 Глава 7. Деревья
- •7.3. Двоичные деревья 299
- •300 Глава 7. Деревья
- •7.3. Двоичные деревья 301
- •302 Глава 7. Деревья
- •7.3. Двоичные деревья 303
- •7.3. Двоичные деревья 305
- •306 Глава 7. Деревья
- •7.3. Двоичные деревья 307
- •Глава 7. Деревья
- •7.3. Двоичные деревья 309
- •310 Глава 7. Деревья
- •7.4. Упражнения 311
- •Глава 7. Деревья
- •7.4. Упражнения 313
- •Глава 7. Деревья
- •7.4. Упражнения
- •Глава 7. Деревья c-7.24 Позволяют t быть деревом с n узлами. Определите самого низкого общего предка (lca)
- •7.4. Упражнения 317
- •Глава 7. Деревья p-7.9 разрезание floorplan являются разложением прямоугольника с горизонтальным и
- •7.4. Упражнения 319
- •320 Глава 7. Деревья
- •Глава 8. Кучи и приоритетные очереди
- •8.1. Приоритетный тип данных резюме очереди 323
- •324 Глава 8. Кучи и приоритетные очереди
- •8.1. Приоритетный тип данных резюме очереди 325
- •Глава 8. Кучи и приоритетные очереди
- •8.1. Приоритетный тип данных резюме очереди
- •8.1. Приоритетный тип данных резюме очереди 329
- •Глава 8. Кучи и приоритетные очереди
- •8.2. Осуществление приоритетной очереди со списком 331
- •Глава 8. Кучи и приоритетные очереди
- •8.2. Осуществление приоритетной очереди со списком 333
- •Глава 8. Кучи и приоритетные очереди
- •8.2. Осуществление приоритетной очереди со списком 335
- •336 Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 337
- •338 Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 339
- •Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 341
- •Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 343
- •Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 345
- •Глава 8. Кучи и Приоритет Стоят в очереди в t, пока никакое нарушение собственности заказа кучи не происходит. (См. Figures8.7 (e) и (h).)
- •8.3. Кучи 347
- •348 Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 349
- •Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 351
- •Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 353
- •354 Глава 8. Кучи и приоритетные очереди
- •8.3. Кучи 355
- •Глава 8. Кучи и приоритетные очереди
- •8.4. Приспосабливаемые приоритетные очереди 357
- •358 Глава 8. Кучи и приоритетные очереди
- •8.4. Приспосабливаемые приоритетные очереди 359
- •360 Глава 8. Кучи и приоритетные очереди
- •8.5. Упражнения
- •Глава 8. Кучи и приоритетные очереди
- •8.5. Упражнения 363
- •Глава 8. Кучи и Приоритетные Очереди, c-8.10 Описывают последовательность n вставок к куче, которая требуетw (n регистрируют n), время
- •8.5. Упражнения 365
- •368 Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.1. Карты 369
- •Глава 9. Хеш-таблицы, Карты и карта Списков Пропуска. Мы можем перечислить все записи карты m, инициализировав p к m.Begin () и затем неоднократно увеличивая p, пока это не равно m.End ().
- •9.1. Карты
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.1. Карты 373
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •376 Глава 9. Хеш-таблицы, карты и списки пропуска
- •382 Глава 9. Хеш-таблицы, карты и списки пропуска
- •386 Глава 9. Хеш-таблицы, карты и списки пропуска
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •390 Глава 9. Хеш-таблицы, карты и списки пропуска
- •394 Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.3. Заказанные карты 395
- •9.3. Заказанные карты 397
- •9.3. Заказанные карты 399
- •400 Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.3. Заказанные карты 401
- •402 Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.4. Пропустите списки 403
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.4. Пропустите списки 405
- •406 Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.4. Пропустите списки 407
- •408 Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.4. Пропустите списки 409
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.5. Словари 411
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.5. Словари 413
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.5. Словари 415
- •Глава 9. Хеш-таблицы, Карты и Списки Пропуска (Вспоминают, что местоположение () теперь возвращает целое число.) Этот подход бежал бы быстро, если бы вход e был сохранен около конца t.
- •9.6. Упражнения
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •9.6. Упражнения 419
- •Глава 9. Хеш-таблицы, карты и списки пропуска
- •424 Глава 10. Деревья поиска
- •10.1. Деревья двоичного поиска 425
- •426 Глава 10. Деревья поиска
- •10.1. Деревья двоичного поиска 427
- •428 Глава 10. Деревья поиска
- •10.1. Деревья двоичного поиска 429
- •430 Глава 10. Деревья поиска
- •10.1. Деревья двоичного поиска 431
- •10.1. Деревья двоичного поиска 433
- •10.1. Деревья двоичного поиска 435
- •Глава 10. Деревья поиска
- •10.1. Деревья двоичного поиска 437
- •438 Глава 10. Деревья поиска
- •10.2. Деревья avl 439
- •440 Глава 10. Деревья поиска
- •10.2. Деревья avl 441
- •442 Глава 10. Деревья поиска
- •10.2. Деревья avl 443
- •444 Глава 10. Деревья поиска
- •10.2. Деревья avl 445
- •446 Глава 10. Деревья поиска
- •10.2. Деревья avl 447
- •Глава 10. Деревья поиска
- •10.2. Деревья avl 449
- •450 Глава 10. Деревья поиска
- •10.3. Косые деревья 451
- •452 Глава 10. Деревья поиска
- •10.3. Косые деревья 453
- •454 Глава 10. Деревья поиска
- •10.3. Косые деревья 455
- •456 Глава 10. Деревья поиска
- •10.3. Косые деревья 457
- •10.3. Косые деревья 459
- •Глава 10. Деревья поиска
- •10.4. (2,4) Деревья 461
- •462 Глава 10. Деревья поиска
- •10.4. (2,4) Деревья 463
- •Глава 10. Деревья поиска
- •10.4. (2,4) Деревья 465
- •466 Глава 10. Деревья поиска
- •10.4. (2,4) Деревья 467
- •468 Глава 10. Деревья поиска
- •10.4. (2,4) Деревья 469
- •470 Глава 10. Деревья поиска
- •10.4. (2,4) Деревья 471
- •472 Глава 10. Деревья поиска
- •10.5. Красно-черные деревья 473
- •Глава 10. Деревья поиска
- •10.5. Красно-черные деревья 475
- •Глава 10. Случай Деревьев поиска 1: Родной брат w V Темнокожий. (См. Рисунок 10.29.) в этом случае, двойное
- •10.5. Красно-черные деревья 477
- •478 Глава 10. Деревья поиска
- •10.5. Красно-черные деревья 479
- •Глава 10. Деревья поиска
- •10.5. Красно-черные деревья 481
- •Глава 10. Случай Деревьев поиска 2: Родной брат y r Темнокожий, и Оба Ребенка y Темнокожие. (См. Фигу -
- •10.5. Красно-черные деревья 483
- •Глава 10. Случай Деревьев поиска 3: Родной брат y r Красный. (См. Рисунок 10.36.) в этом случае мы выступаем
- •10.5. Красно-черные деревья 485
- •486 Глава 10. Деревья поиска
- •10.5. Красно-черные деревья 487
- •488 Глава 10. Деревья поиска
- •10.5. Красно-черные деревья 489
- •490 Глава 10. Деревья поиска
- •10.5. Красно-черные деревья 491
- •492 Глава 10. Деревья поиска
- •10.6. Упражнения
- •494 Глава 10. Деревья поиска
- •10.6. Упражнения 495
- •Глава 10. Деревья поиска
- •500 Глава 11. Сортировка, наборы и выбор
- •11.1. Вид слияния 501
- •502 Глава 11. Сортировка, наборы и выбор
- •11.1. Вид слияния 503
- •504 Глава 11. Сортировка, наборы и выбор
- •11.1. Вид слияния 505
- •506 Глава 11. Сортировка, наборы и выбор
- •11.1. Вид слияния 507
- •508 Глава 11. Сортировка, наборы и выбор
- •11.1. Вид слияния 509
- •Глава 11. Сортировка, наборы и выбор
- •11.1. Вид слияния 511
- •512 Глава 11. Сортировка, наборы и выбор
- •11.2. Быстрый вид 513
- •514 Глава 11. Сортировка, наборы и выбор
- •11.2. Быстрый вид 515
- •516 Глава 11. Сортировка, наборы и выбор
- •11.2. Быстрый вид 517
- •518 Глава 11. Сортировка, наборы и выбор
- •11.2. Быстрый вид 519
- •520 Глава 11. Сортировка, наборы и выбор
- •11.2. Быстрый вид 521
- •Глава 11. Сортировка, наборы и выбор
- •11.2. Быстрый вид 523
- •Глава 11. Сортировка, наборы и выбор
- •11.2. Быстрый вид 525
- •Глава 11. Сортировка, наборы и выбор
- •11.3. Изучение сортировки алгоритмической линзы 527
- •Глава 11. Сортировка, наборы и выбор
- •11.3. Изучение сортировки алгоритмической линзы 529
- •Глава 11. Сортировка, наборы и выбор
- •11.3. Изучение сортировки алгоритмической линзы 531
- •11.4. Наборы и Структуры Союза/Находить 533
- •Глава 11. Сортировка, наборы и выбор
- •11.4. Наборы и Структуры Союза/Находить 535
- •11.4. Наборы и Структуры Союза/Находить 537
- •538 Глава 11. Сортировка, наборы и выбор
- •11.4. Наборы и Структуры Союза/Находить 539
- •540 Глава 11. Сортировка, наборы и выбор
- •11.4. Наборы и Структуры Союза/Находить 541
- •542 Глава 11. Сортировка, наборы и выбор
- •11.5. Выбор 543
- •544 Глава 11. Сортировка, наборы и выбор
- •11.6. Упражнения
- •Глава 11. Сортировка, Наборы и Выбор Шоу r-11.14, что вероятность, что любой данный входной элемент X принадлежит больше
- •11.6. Упражнения 547
- •11.6. Упражнения 549
- •Глава 12. Последовательности и динамическое программирование
- •12.1. Операции по последовательности 555
- •Глава 12. Последовательности и динамическое программирование
- •12.2. Динамическое программирование 557
- •558 Глава 12. Последовательности и динамическое программирование
- •12.2. Динамическое программирование
- •Глава 12. Последовательности и динамическое программирование
- •12.2. Динамическое программирование 561
- •562 Глава 12. Последовательности и динамическое программирование
- •12.2. Динамическое программирование 563
- •Глава 12. Последовательности и динамическое программирование
- •12.3. Алгоритмы соответствия образца 565
- •566 Глава 12. Последовательности и динамическое программирование
- •12.3. Алгоритмы соответствия образца 567
- •568 Глава 12. Последовательности и динамическое программирование
- •12.3. Алгоритмы соответствия образца 569
- •Глава 12. Последовательности и динамическое программирование
- •12.3. Алгоритмы соответствия образца 571
- •572 Глава 12. Последовательности и динамическое программирование
- •12.3. Алгоритмы соответствия образца 573
- •Глава 12. Последовательности и динамическое программирование
- •12.4. Текстовое сжатие и жадный метод 575
- •576 Глава 12. Последовательности и динамическое программирование
- •12.4. Текстовое сжатие и жадный метод
- •578 Глава 12. Последовательности и динамическое программирование
- •12.5. Попытки 579
- •Глава 12. Последовательности и динамическое программирование
- •12.5. Попытки 581
- •582 Глава 12. Последовательности и динамическое программирование
- •12.5. Попытки 583
- •584 Глава 12. Последовательности и динамическое программирование
- •12.5. Попытки 585
- •586 Глава 12. Последовательности и динамическое программирование
- •12.6. Упражнения
- •Глава 12. Последовательности и динамическое программирование
- •12.6. Упражнения 589
- •Глава 12. Последовательности и Динамическое Программирование c-12.16 Описывают алгоритм для строительства компактного представления a
- •12.6. Упражнения 591
- •Глава 12. Последовательности и Динамическое Программное p-12.10 Орудие поисковая система для страниц небольшого веб-сайта, добавляя
- •594 Глава 13. Алгоритмы графа
- •13.1. Графы 595
- •13.1. Графы 597
- •13.1. Графы 599
- •Глава 13. Алгоритмы графа
- •13.2. Структуры данных для графов
- •602 Глава 13. Алгоритмы графа
- •13.2. Структуры данных для графов 603
- •604 Глава 13. Алгоритмы графа
- •13.2. Структуры данных для графов 605
- •606 Глава 13. Алгоритмы графа
- •13.3. Пересечения графа 607
- •608 Глава 13. Алгоритмы графа
- •13.3. Пересечения графа 609
- •13.3. Пересечения графа 611
- •612 Глава 13. Алгоритмы графа
- •13.3. Пересечения графа 613
- •Глава 13. Алгоритмы графа
- •13.3. Пересечения графа 615
- •Глава 13. Алгоритмы графа
- •13.3. Пересечения графа 617
- •618 Глава 13. Алгоритмы графа
- •13.3. Пересечения графа
- •620 Глава 13. Алгоритмы графа
- •13.3. Пересечения графа 621
- •Глава 13. Алгоритмы графа
- •13.3. Пересечения графа 623
- •624 Глава 13. Алгоритмы графа
- •13.3. Пересечения графа 625
- •626 Глава 13. Алгоритмы графа
- •13.4. Направленные графы 627
- •628 Глава 13. Алгоритмы графа
- •13.4. Направленные графы 629
- •13.4. Направленные графы 631
- •632 Глава 13. Алгоритмы графа
- •13.4. Направленные графы 633
- •Глава 13. Алгоритмы графа
- •13.4. Направленные графы 635
- •636 Глава 13. Алгоритмы графа
- •13.5. Кратчайшие пути 637
- •638 Глава 13. Алгоритмы графа
- •13.5. Кратчайшие пути 639
- •13.5. Кратчайшие пути 641
- •642 Глава 13. Алгоритмы графа
- •13.5. Кратчайшие пути 643
- •644 Глава 13. Алгоритмы графа
- •13.6. Минимальные деревья охвата 645
- •646 Глава 13. Алгоритмы графа
- •13.6. Минимальные деревья охвата 647
- •648 Глава 13. Алгоритмы графа
- •13.6. Минимальные деревья охвата 649
- •650 Глава 13. Алгоритмы графа
- •13.6. Минимальные деревья охвата 651
- •652 Глава 13. Алгоритмы графа
- •13.6. Минимальные деревья охвата 653
- •654 Глава 13. Алгоритмы графа
- •13.7. Упражнения 655
- •Глава 13. Шоу r-13.15 Алгоритмов графа, как изменить псевдокодекс для алгоритма Дейкстры для случая
- •13.7. Упражнения 657
- •Глава 13. Алгоритмы графа
- •13.7. Упражнения 659
- •Глава 13. Сети Graph Algorithms c-13.20 Computer должны избежать единственных пунктов неудачи, то есть, сети
- •13.7. Упражнения 661
- •662 Глава 13. Алгоритмы графа
- •Глава 14. Управление памятью и b-деревья
- •14.1. Управление памятью 667
- •Глава 14. Управление памятью и b-деревья
- •14.1. Управление памятью
- •670 Глава 14. Управление памятью и b-деревья
- •14.1. Управление памятью 671
- •Глава 14. Управление памятью и b-деревья
- •14.2. Внешняя память и кэширование 673
- •674 Глава 14. Управление памятью и b-деревья
- •14.2. Внешняя память и кэширование 675
- •676 Глава 14. Управление памятью и b-деревья
- •14.2. Внешняя память и кэширование 677
- •Глава 14. Управление памятью и b-деревья
- •14.3. Внешний поиск и b-деревья 679
- •680 Глава 14. Управление памятью и b-деревья
- •14.3. Внешний поиск и b-деревья 681
- •682 Глава 14. Управление памятью и b-деревья
- •14.4. Сортировка внешней памяти 683
- •684 Глава 14. Управление памятью и b-деревья
- •14.5. Упражнения
- •Глава 14. Управление памятью и b-деревья
- •Глава 14. Управление памятью и b-деревья
- •692 Приложение a. Полезные математические факты
- •706 Индекс
- •708 Индекс
- •710 Индекс
594 Глава 13. Алгоритмы графа
13.1 Графы
Граф - способ представлять отношения, которые существуют между парами объектов. Таким образом, граф - ряд объектов, названных вершинами, вместе с коллекцией попарных связей между ними. Это понятие «графа» не должно быть доводом «против» - сплавленный с гистограммами и заговорами функции, поскольку эти виды «графов» не связаны с темой этой главы. У графов есть применения в массе различных областей, включая отображение, транспортировку, электротехнику и компьютерные сети.
Рассматриваемый абстрактно, граф G является просто набором V из вершин и коллекции E пар вершин от V, названный краями. Таким образом граф - способ представлять связи или отношения между парами объектов от некоторого набора V. Некоторые книги используют различную терминологию для графов и относятся к тому, что мы называем вершинами как узлами и что мы называем краями как дугами. Мы используем термины «вершины» и «края».
Края в графе или направлены или не направлены. Край (u, v), как говорят, направлен от u до v, если паре (u, v) приказывают с u, предшествующим v. Край (u, v), как говорят, не направлен, если паре (u, v) не приказывают. Ненаправленные края
иногда обозначаемый с примечанием набора, какu, v, но для простоты мы используем пару
примечание (u, v), отмечая, который в ненаправленном случае (u, v) совпадает с (v, u). Графы
как правило, визуализируются, таща вершины как овалы или прямоугольники и края как сегменты или кривые, соединяющие пары овалов и прямоугольников. Следующее - некоторые примеры направленных и ненаправленных графов. Пример 13.1: Мы можем визуализировать сотрудничество среди исследователей cer-дисциплины оловянной амальгамы, строя граф, вершины которого связаны с пере - сами искатели, и чьи края соединяют пары вершин, связанных с исследователями, которые создали в соавторстве газету или книгу. (См. рисунок 13.1.) Такие края не направлены, потому что coauthorship - симметричное отношение; то есть, если у A есть coau-thored, что-то с B, тогда B обязательно создало в соавторстве что-то с A.
Рисунок 13.1: Граф coauthorship среди некоторых авторов.
13.1. Графы 595
Пример 13.2: ориентированная на объект программа может быть связана с графом чей
вершины представляют классы, определенные в программе и чьи края указывают в - heritance между классами. Есть край от вершины v к вершине u, если класс для v расширяет класс для u. Такие края направлены, потому что отношение наследования только входит в одно направление (то есть, это асимметрично).
Если все края в графе не направлены, то мы говорим, что граф - ненаправленный граф. Аналогично, направленный граф, также названный диграфом, является графом, края которого все направлены. Граф, который и направил и не направил края, часто называют смешанным графом. Обратите внимание на то, что ненаправленный или смешанный граф может быть преобразован в направленный граф, заменив каждый ненаправленный край (u, v) парой направленных краев (u, v) и (v, u). Часто полезно, однако, сохранять ненаправленные и смешанные графы представленными, как они, поскольку у таких графов есть несколько заявлений, таких как заявление следующего примера.
Пример 13.3: городская карта может быть смоделирована графом, вершины которого меж - секции или тупики, и чьи края - отрезки улиц без intersec-tions. Этот граф и не направил края, которые соответствуют отрезкам улиц с двусторонним движением и направили края, которые соответствуют отрезкам односторонних улиц. Таким образом, таким образом, граф, моделируя городскую карту является смешанным графом.
Пример 13.4: Физические примеры графов присутствуют в сетях электропроводки и слесарного дела здания. Такие сети могут быть смоделированы как графы, где каждый соединитель, приспособление или выход рассматриваются как вершина, и каждый uninter-rupted протяжение провода или трубы рассматривается как край. Такие графы фактически com-ponents намного больших графов, а именно, местная власть и водная распределительная сеть - работы. В зависимости от определенных аспектов этих графов, которыми мы интересуемся, мы можем рассмотреть их края, как не направлено или направлено, потому что в принципе вода может, flow в трубе и токе может flow в проводе в любом направлении.
Эти две вершины, к которым присоединяется край, называют вершинами конца (или конечные точки) края. Если край направлен, его первая конечная точка - его происхождение, и другой место назначения края. Две вершины u и v, как говорят, смежны, если есть край, вершины конца которого - u и v. Край, как говорят, является инцидентом на вершине, если вершина - одна из конечных точек края. Коммуникабельные края вершины - направленные края, происхождение которых - та вершина. Поступающие края вершины - направленные края, место назначения которых - та вершина. Степень вершины v, обозначенный градус (v), является числом краев инцидента v. В степени и-степень вершины v являются числом поступающих и коммуникабельных краев v и обозначены indeg (v) и outdeg (v), соответственно.
596
Глава 13. Пример Алгоритмов графа 13.5: Мы можем изучить воздушные перевозки, строя граф G, названный сетью полета, вершины которой связаны с аэропортами, и чьи края связаны с flights. (См. рисунок 13.2.) В графе G, направлены края, потому что у данного flight есть определенное направление путешествия (от аэропорта происхождения до аэропорта назначения). Конечные точки края e в G соответствуют соответственно происхождению и месту назначения для flight, соответствующего e. Два аэропорта смежны в G, если есть flight, что flies между ними и край e являются инцидентом на вершину v в G если flight для e flies к или из аэропорта для v. Коммуникабельные края вершины v соответствуют flights за границу из аэропорта v, и поступающие края соответствуют прибывающему flights в аэропорт v. Наконец, в степени из вершины v G соответствует числу прибывающего flights в аэропорт v, и-степень вершины v в G соответствует числу flights за границу.
Определение графа именует группу краев как коллекция, не набор, таким образом допуская два ненаправленных края, чтобы иметь те же самые вершины конца, и для двух направленных краев, чтобы иметь то же самое происхождение и то же самое место назначения. Такие края называют параллельными краями или многократными краями. Параллельные края могут быть в flight сети (Пример 13.5), когда многократные края между той же самой парой вершин могли указать на различный flights, воздействующий на тот же самый маршрут в разное время дня. Другой специальный тип края - тот, который соединяет вершину с собой. А именно, мы говорим, что край (ненаправленный или направленный) является самопетлей, если ее две конечных точки совпадают. Самопетля может произойти в графе, связанном с городской картой (Пример 13.3), где это соответствовало бы «кругу» (изгибающаяся улица, которая возвращается к ее отправному вопросу).
За редким исключением у графов нет параллельных краев или самопетель. Такие графы, как говорят, просты. Таким образом мы можем обычно говорить, что края простого графа - ряд пар вершины (и не только коллекция). Всюду по этой главе мы предполагаем, что граф прост, если иначе не определено.
Рисунок 13.2: Пример направленного графа, представляющего flight сеть. Конечные точки края UA 120 СЛАБЫ и ПОРЯДОК; следовательно, СЛАБЫЙ и ПОРЯДОК смежны. В степени из DFW равняется 3, и-степень DFW равняется 2.
