Структуры данных и модели вычислений

     energynow    

Представление тонкой кучи в памяти компьютера.


Тонкие кучи формируют из узлов, представленных записями следующего вида:

где — ключ элемента, приписанного узлу; — указатель на ближайшего левого брата, если такового нет, то на родителя, а если нет и родителя, то указатель заземлен; — указатель на ближайшего правого брата, если такового нет, то указатель заземлен; — указатель на самого левого сына, если такового нет, то указатель заземлен; — ранг узла.

Таким образом, узлы-братья связаны в двусвязный список при помощи указателей и . У самого левого брата в этом списке указатель указывает на общего родителя всех узлов в списке. У самого правого брата из списка указатель заземлен. Корни деревьев в тонкой куче связаны в односвязный циклический список. Этот список будем называть корневым списком. Корневой список реализуется при помощи поля . Поле у каждого узла корневого списка заземлено.

В случае необходимости в описании узла может присутствовать и другая прикладная информация. На рис. 8.2 приведен пример тонкой кучи.


Тонкая куча

Представление кучи со ссылками, в узлах указаны ранги


Рис. 8.2. 

Заметим, что принадлежность заданного узла корневому списку кучи осуществляется проверкой указателя на заземленность.

Введем еще одну запись , которая будет соответствовать отдельной куче и иметь вид

где — указатель на начальный элемент корневого списка; — указатель на элемент корневого списка с минимальным ключом.

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



Содержание  Назад  Вперед