Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Структуры BST - деревьев

Постановка задачи. | Разработка структур данных и алгоритмов | Friend class Iterator; | Отладка и тестирование | Сопровождение | Алгоритмы внутренней сортировки | Задание к лабораторной работе | Методические указания к выполнению задания | Структуры списков | Задание к лабораторной работе |


Читайте также:
  1. А я здесь, в лесу, в полном одиночестве, брожу среди деревьев в пижаме и носках, и из оружия у меня есть только фонарик. Маньяки, я здесь!
  2. Алгоритм удаления из BST-дерева на основе объединения поддеревьев
  3. Анализ и оценка удовлетворительности структуры баланса проводятся на основе расчета следующих показателей
  4. Анализ состава и структуры имущества
  5. АНАЛИЗ СТРУКТУРЫ И СТИМУЛЯЦИИ ПОВЕДЕНИЯ
  6. Анализ структуры и стимуляции строительной игры Игоря
  7. Битва деревьев

Для хранения BST-деревьев используются две альтернативные структуры – массив элементов дерева и связная структура дерева на базе адресных указателей.

Массив элементов используется в случае, если задано предельное количество элементов (размер дерева), которые будут размещены в BST -дереве. В этом случае для хранения дерева выделяется массив заданного размера, тип которого совпадает с типом элементов множества, хранящегося в дереве. Корень дерева размещается в элементе массива с индексом 0, а его левый и правый сыновья – с индексом 1 и 2 соответственно. По индексу любого элемента легко вычислить индексы его сыновей и родителя в массиве. Если некоторый элемент имеет индекс i, то его левый сын расположен по индексу 2i+1, а правый сын – по индексу 2i+2. Индекс родителя вычисляется, как целая часть от деления (i-1)/2 (рис.17).

 

 

 
 

Рис. 17. Схема размещения BST -дерева в массиве.

Как видно из примера, приведенного на рис. 15, хранение дерева приводит к неэффективному использованию памяти массива. Поэтому использовать массив рекомендуется для хранения полных деревьев, в которых каждый узел имеет двух сыновей.

Наиболее распространённой формой для хранения деревьев является связная структура на базе адресных указателей. Каждый узел дерева размещается в динамической памяти и содержит помимо ключа и данных два указателя на левого и правого сыновей. Таким образом, структура через указатели на сыновей обеспечивает спуск по дереву от корня к местоположению узла с заданным значением ключа. Для некоторых операций требуется подъём от некоторого узла к родительскому узлу и далее к корню. Для этого в структуру узла можно ввести дополнительный указатель на родителя. Но это приводит к неоправданным затратам памяти на дополнительные указатели в узлах. Поэтому эти указатели используются только в отдельных разновидностях деревьев. Как правило, естественное поведение алгоритма операции, обеспечивает возврат по ранее пройденному пути в дереве.

В дерево вводится вспомогательный указатель, содержащий адрес корневого узла. Если дерево пусто, то указатель содержит значение nil (рис. 18).


 
 

Рис. 18. Связная структура BST -дерева.


Дата добавления: 2015-11-04; просмотров: 116 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Методические указания к выполнению задания| Задание к лабораторной работе

mybiblioteka.su - 2015-2024 год. (0.006 сек.)