Составьте алгоритм вставки для структуры данных на основе сбалансированного дерева. Время вставки и поиска для таких структур данных должно стремиться к логарифмическому и не превышать линейного для худших случаев размещения данных.
- Программирование
Условие:
Составьте алгоритм вставки для структуры данных на основе сбалансированного дерева:
Вы работаете в организации, занимающейся разработкой продуктов для разработчиков ПО на проекте разработки собственного языка программирования и платформенных инструментов для серверных бизнес-приложений. Поскольку версии вашего продукта еще достаточно ранние, оказалось, что в стандартной библиотеке вашего языка до сих пор нет эффективных по времени доступа и поиска структур данных на основе сбалансированных бинарных деревьев. Это известный своей равнозначной эффективностью алгоритм хранения данных. Необходимо их разработать, чтобы разработчикам на ваших технологиях не приходилось «изобретать велосипеды» и они могли фокусироваться на более высокоуровневых задачах и бизнес-ценности разрабатываемого кода. Время вставки и поиска для таких структур данных должно стремиться к логарифмическому и не превышать линейного для худших случаев размещения данных. Время поиска приоритетнее времени вставки, поэтому случаи самобалансирующихся деревьев пока не рассматриваются.
А Если значение меньше текущего, выполнять вставку влево
Б. Если значение больше текущего, выполнять вставку влево
В Проверить разбалансировку дерева
г Если значение больше текущего, выполнять вставку вправо
Д Проверить высоту дерева
Е Взять корневой элемент
Ж Перекрасить родительский элемент
3 Вычислить хэш-сумму элемента
И выполнить ребалансировку дерева
Й если значение меньше текущего, выполнить вставку вправо
Решение:
Ниже приведён пошаговый вариант алгоритма вставки в сбалансированное двоичное дерево, где приоритет отдан быстрому поиску. Некоторые варианты из списка (Б и Й) противоречат логике стандартной двоичной сортировки, поэтому в алгоритме используются только корректные варианты. Шаг 1. Начало работы с корневым узлом Е. Взять корневой элемент. Если дерево пустое, создать новый узел с вставляемым значением и завершить алгоритм. Шаг 2. Сравнение вставляемого значения с текущим узлом Если вставляемое значение меньше значения текущего узла, то переходим к левому поддереву: А. Если значение ме...
Похожие задачи
Не нашел нужную задачу?
Воспользуйся поиском
Выбери предмет
- Правоохранительные органы
- Пожарная безопасность
- Парикмахерское искусство
- Природообустройство и водопользование
- Почвоведение
- Приборостроение и оптотехника
- Промышленный маркетинг и менеджмент
- Производственный маркетинг и менеджмент
- Процессы и аппараты
- Программирование
- Право и юриспруденция
- Психология
- Политология
- Педагогика
- Трудовое право
- Теория государства и права (ТГП)
- Таможенное право
- Теория игр
- Текстильная промышленность
- Теория вероятностей
- Теоретическая механика
- Теория управления
- Технология продовольственных продуктов и товаров
- Технологические машины и оборудование
- Теплоэнергетика и теплотехника
- Туризм
- Товароведение
- Таможенное дело
- Торговое дело
- Теория машин и механизмов
- Транспортные средства