Изменения

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

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

14 байт добавлено, 15:22, 9 апреля 2016
Операция фиксации rmFixRootCount(i)
'''return''' minP
===Операция фиксации ===Операция фиксации <tex>\mathrm{rmFixRootCount(i)}</tex>===Операция фиксации для <tex>i</tex>-го разряда корневого счетчика подразумевает, что его значение равно трем, а списочная часть содержит указатель на список деревьев ранга <tex>i</tex>, состоящий ровно из трех деревьев. При выполнении этой операции значение в <tex>i</tex>-м разряде — должно стать равным нулю, а значение в <tex>i</tex>-м разряде увеличиться на единицу. То есть в куче не должно остаться деревьев ранга <tex>i</tex>, а количество деревьев ранга <tex>i+1</tex> должно увеличиться на единицу. Для этого следует удалить из кучи три присутствующих в ней дерева ранга <tex>i</tex> , связать их в дерево ранга <tex>i+1</tex> и вставить вновь полученное дерево в кучу.
Следует учесть, что ранг нового дерева может стать больше, чем <tex>maxRank</tex>, что потребует инициализации нового разряда. Для этого необходимо увеличить значение <tex>maxRank</tex> на единицу и заполнить новое поле, а также провести инициализацию нового разряда.
rmFixRootCount(i)
rootCount[i].listPointer = NULL
insertTree(i + 1, p)
rootCount[i + 1].Value = rootCount[i + 1].Value + 1
===Инкрементирование i-го разряда корневого счетчика===
635
правок

Навигация