Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

8.5. Упражнения

8.5 Упражнения

Для помощи с упражнениями, пожалуйста, посетите веб-сайт, www.wiley.com/college/goodrich. <www.wiley.com/college/goodrich>

Укрепление

361

R-8.1 Что является продолжительностью каждой из функций предшествующего (стандарта) -

ADT очереди ity, если мы осуществляем его, приспосабливая приоритетную очередь STL?

R-8.2 Сколько времени был бы он брать, чтобы удалить⌈log n ⌉ самые маленькие элементы от a

куча, которая содержит n записи, используя removeMin () операция?

R-8.3 Покажите что, учитывая только меньше оператор (<) и булевы операторы

и (&&), или (||), и не (!), возможно осуществить все другие компараторы:>, <=>, =, ==! =.

R-8.4 Объясните, как осуществить приоритетную очередь, основанную на составе

метод (хранения пар основного элемента), приспосабливая приоритетную очередь, основанную на подходе компаратора.

R-8.5 предположим Вы маркируете каждый узел v двоичного дерева T с ключом равным

разряд перед заказом v. При каких обстоятельствах T - куча? R-8.6 Покажите продукцию от следующей последовательности приоритетной очереди ADT op-

erations. Записи - пары основного элемента, где сортировка основана на значении ключа: вставка (5, a), вставка (4, b), вставка (7, i), вставка (1, d), removeMin (), вставка (3, j), вставка (6, c), removeMin (), removeMin (), вставка (8, g), удаляют - Минута (), вставка (2, h), removeMin (), removeMin ().

R-8.7 Аэропорт развивает компьютерное моделирование авиадиспетчерской службы это

события ручек, такие как приземления и взлеты. У каждого события есть метка времени, которая обозначает время, когда событие имеет место. Программа моделирования должна эффективно выполнить следующие две фундаментальных операции:

• Вставьте событие с данной меткой времени (то есть, добавьте будущее событие),

• Извлеките событие с самой маленькой меткой времени (то есть, определите

следующее событие, которое обработает)

Какая структура данных должна использоваться для вышеупомянутых операций? Почему? R-8.8 Хотя это правильно, чтобы использовать «обратный» компаратор с нашим приоритетом

очередь ADT так, чтобы мы восстановили и удалили элемент с макси - ключ мамы каждый раз, это запутывающее, чтобы иметь элемент с максимальным ключом, возвращенным функцией, названной «removeMin». Напишите короткий класс адаптера, который может взять любую приоритетную очередь P и связанный компаратор C и осуществить приоритетную очередь, которая концентрируется на элементе с максимальным ключом, используя функции с именами как removeMax. (Намек: Определите новый компаратор C с точки зрения C.),

362

Глава 8. Кучи и приоритетные очереди

R-8.9 Иллюстрируйте исполнение алгоритма вида выбора на следующем

входная последовательность: (22, 15, 36, 44, 10, 3, 9, 13, 29, 25). R-8.10 Иллюстрируйте исполнение алгоритма вида вставки на входе se-

айва предыдущей проблемы. R-8.11 Дайте пример последовательности худшего случая с n элементами для вставки -

вид и шоу, что вид вставки управляет вW (n2) временем на такой последовательности. R-8.12 В котором узлы кучи могут вход с самым большим ключом быть сохраненными? R-8.13 В определении отношения «налево от» для двух узлов двоичного дерева (Секунда -

tion 8.3.1), мы можем использовать пересечение перед заказом вместо inorder пересечения? Как насчет пересечения постзаказа?

R-8.14 Иллюстрируйте исполнение алгоритма вида кучи на следующем в -

помещенная последовательность: (2, 5, 16, 4, 10, 23, 39, 18, 26, 15). R-8.15 Позвольте T быть полным двоичным деревом, таким образом, что узел v хранит пары ключевого входа

(f (v), 0), где f (v) является числом уровня v. Дерево - T куча? Почему или почему нет?

R-8.16 Объясните, почему случай, где правильный ребенок r внутренний и покинутый ребенок

внешнее, не был рассмотрен в описании пузырения вниз-кучи. R-8.17 Есть ли куча T хранение семи отличных элементов, таким образом что предварительный заказ

пересечение T приводит к элементам T в сортированном заказе? Как насчет inorder пересечения? Как насчет пересечения постзаказа?

R-8.18 Считайте нумерацию узлов двоичного дерева определенной в Секунду -

tion 7.3.5 и шоу, что положение вставки в куче с n ключами - узел с номером n + 1.

R-8.19 Позвольте H быть кучей, хранящей 15 записей, используя векторное представление a

полное двоичное дерево. Какова последовательность индексов вектора, которые посещают в пересечении перед заказом H? Что относительно inorder пересечения H? Что относительно пересечения постзаказа H?

R-8.20 Покажите, что суммаån=1 регистрируется i, который появляется в анализе вида кучи, меня

W (n, регистрируют n). R-8.21 Билл утверждает, что пересечение перед заказом кучи перечислит свои ключи nonde-

сморщивание заказа. Потяните пример кучи, которая доказывает его неправильно. R-8.22 Хиллари утверждает, что пересечение постзаказа кучи перечислит свои ключи не -

увеличение заказа. Потяните пример кучи, которая доказывает ее несправедливость. R-8.23 Покажите все шаги алгоритма для удаления ключевых 16 от кучи

Рисунок 8.3. R-8.24 Тянет пример кучи, ключи которой - все нечетные числа от 1 до

59 (без повторений), такой, что вставка входа с ключевыми 32 заставила бы-кучу, пузырящуюся продолжаться полностью до ребенка корня (заменяющий что ключ ребенка 32).