Изменения

Перейти к: навигация, поиск

Толстая куча на избыточном счётчике

421 байт добавлено, 23:45, 22 мая 2013
Основные операции
Как только <tex>h2</tex> не будет содержать каких-либо нарушений, нужно вставить корни из корневого счетчика <tex>h2</tex> в корневой счетчик <tex>h1</tex> инкрементированием соответствующих цифр. Если минимальный узел <tex>h2</tex> содержит меньший ключ, чем минимальный узел <tex>h1</tex> , следует установить новым минимальным узлом <tex>h1</tex> минимальный узел <tex>h2</tex> . Затем нужно вернуть модифицированную кучу <tex>h1</tex> в качестве результата <tex>Meld</tex> .
* <tex>DeleteViolation</tex>
для освобождения кучи от нарушений достаточно выполнить следующий псевдокод:
<code>
for i:=0 to h2.MaxRank do
if (CountViolation[i].Value = 2)
FixCountViolation(i);
for i:=0 to h2.MaxRank do
if(CountViolation[i].Value = 1)
IncCountViolation(i, SearchBrother(CountViolation[i].rmFirstviolation));
FixCountViolation(i);
</code>
== Источники ==
* [http://www.intuit.ru/studies/courses/100/100/lecture/1543?page=1 Толстые кучи — INTUIT.ru]
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Приоритетные очереди]]
497
правок

Навигация