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

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

9.6 Упражнения

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

Укрепление

417

R-9.1 Какая из схем обработки столкновения хеш-таблицы могла терпеть груз

фактор выше 1 и который не мог?

R-9.2 Что является продолжительностью худшего случая для вставки n записи значения ключа в

первоначально пустая карта M, которая осуществлена со списком?

R-9.3 Что является худшим случаем асимптотическая продолжительность для выполнения n (правильный)

сотрите () операции на карте, осуществленной с заказанным столом поиска, который первоначально содержит 2n записи?

R-9.4 Опишите, как использовать карту списка пропуска, чтобы осуществить словарь ADT,

разрешение пользователю вставить различные записи с равными ключами.

R-9.5 Опишите, как заказанный список, осуществленный как вдвойне связанный список, мог быть

используемый, чтобы осуществить карту ADT.

R-9.6 Что было бы хорошим кодексом мешанины для идентификации транспортного средства, которая является последовательностью

из чисел и писем от формы «9X9XX99X9XX999999», то, где «9» представляет цифру и «X», представляет письмо?

R-9.7 Потяните хеш-таблицу с 11 входами, которая следует из использования функции мешанины,

h (i) = (3i + 5) модник 11, чтобы крошить ключи 12, 44, 13, 88, 23, 94, 11, 39, 20, 16, и 5, принимающие столкновения обработаны, приковав цепью.

R-9.8 Что является результатом предыдущего осуществления, принимающие столкновения ханьские -

dled линейным исследованием?

R-9.9 Покажите результат Упражнения R-9.7, принимающие столкновения обработаны

квадратное исследование, до пункта, где метод терпит неудачу. R-9.10 Что является результатом Упражнения R-9.7, когда столкновения обработаны дважды

хеширование использования вторичной мешанины функционирует h (k) = 7- (k модник 7)?

R-9.11 Дайте псевдокодовое описание вставки в хеш-таблицу, которая использует

квадратное исследование, чтобы решить столкновения, принимая мы также используем уловку замены удаленных пунктов со специальным «дезактивированным пунктом» объект.

R-9.12 Опишите ряд операций для заказанного словаря ADT, который был бы

соответствуйте функциям заказанной карты ADT. Обязательно определите значение функций так, чтобы они могли иметь дело с возможностью различных записей с равными ключами.

R-9.13 Покажите результат перефразирования хеш-таблицы, показанной в рисунке 9.4 в a

стол размера 19, используя новую функцию мешанины h (k) = 3k модник 17.

418

Глава 9. Хеш-таблицы, карты и списки пропуска

R-9.14 Объясните, почему хеш-таблица не подходит осуществлять заказанный dictio-

не ADT.

R-9.15 Что является продолжительностью худшего случая для вставки n пункты в первоначально

пустая хеш-таблица, где столкновения решены, приковав цепью? Каков лучший случай?

R-9.16 Потяните список пропуска в качестве примера, который следует из выполнения следующего

ряд операций в списке пропуска, показанном в рисунке 9.12: сотрите (38), вставка (48, x), вставка (24, y), сотрите (55). Сделайте запись своей монеты flips, также.

R-9.17 Дайте псевдокодовое описание стереть операции в списке пропуска. R-9.18 Что является ожидаемой продолжительностью функций для поддержания макс. -

я собираюсь установить, если мы вводим n пары, таким образом, что у каждой пары есть более низкая цена и perfor-mance, чем тот перед ним? Что содержится в заказанном словаре в конце этого ряда операций? Что, если у каждой пары были более низкая цена и более высокая работа, чем та перед ним?

R-9.19 Обсудите, почему осведомленные о местоположении записи не действительно необходимы для словаря

осуществленный с хорошей хеш-таблицей.

Креативность

C-9.1 Опишите, как Вы могли выполнить каждую из дополнительных функций

заказанная карта ADT использование списка пропуска.

C-9.2 Опишите, как использовать список пропуска, чтобы осуществить вектор ADT, так, чтобы индекс -

основанные вставки и удаления оба пробега в O (регистрируют n), ожидаемое время.

C-9.3 предположим нам дают два заказанных словаря S и T, каждого с n пунктами,

и это, S и T осуществлены посредством основанного на множестве, заказало se-айву. Опишите O (log2 n) разовый алгоритм для нахождения kth маленького - оценка вводит союз ключей от S и T (принимающий дубликаты).

C-9.4 Дайте O (зарегистрируйте n), разовое решение для предыдущей проблемы. C-9.5 Проектируйте изменение двоичного поиска для выполнения findAll (k) в заказанном

словарь осуществил с заказанным множеством и шоу, которым он управляет вовремя O (регистрируют n + s), где n - ряд элементов в словаре, и s - размер возвращенного iterator.

C-9.6 Внедрение словаря хеш-таблицы требует, чтобы мы нашли начало

число между номером M и номером 2M. Осуществите функцию для нахождения такого начала при помощи алгоритма решета. В этом алгоритме мы ассигнуем 2M клетка Булево множество A, такой, что клетка я связан с целым числом i. Мы тогда инициализируем клетки множества ко всем быть «верными», и мы «отмечаем

от» всех клеток, которые являются сетью магазинов 2, 3, 5, Ö, и так далее. Этот процесс 7

может остановиться после того, как это достигнет числа, больше, чем 2M.

Ö (Намек: Рассмотрите метод самонастройки для вычисления начал до

2M.)