Для реализации операций над элементами полного d-дерева необходимо иметь информацию о предках и потомках d-дерева. Обозначим через Pred[i] – отца (предшественника) вершины i в d-дереве, Succ[i] – множество сыновей вершины i. По аналогии с полным бинарным деревом, d-дерево можно представить с помощью массива. Например, для d-дерева на рисунке

Пример d-дерева

массив будет выглядеть следующим образом:

dHeap = { 5, 9, 8, 15, 21, 12, 16, 18, 29, 10, 31, 22, 27 }

Пусть last определяет число вершин, хранимых в массиве dHeap. В данном примере last = 13.

При использовании структуры данных d-кучи требуется O(1) времени для выполнения операции find_min, O(logdn) времени для выполнения операций insert, decrease_key и O(d logdn) времени для выполнения операций delete_min, delete и increase_key.

Hosted by uCoz