Изменения

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

Дерево ван Эмде Боаса

126 байт добавлено, 21:03, 15 июня 2011
Delete
==Delete==
Удаление из дерева T также делится на несколько подзадач:*Если T.min = T.max = x, значит в дереве один элемент, мы его удалим и как-нибудь пометим, что дерево пусто(на будущее).*Если x = T.min,то мы должны найти следующий второй минимум удалить его из того места где он находится и поставить в T.min Второй минимум - это либо T.max, либо T.children[T.aux.min].min.
Аналогично для случая x = T.max
*Если же x = T.min и x = T.max, то мы должны удалить x из поддерева i отвечающего x.
Важно, что Delete реализован рекурсивно от дерева в котором идет удаления.
Так же нельзя забывать, что если мы удаляем последнее вхождение x, то мы должны удалить i из вспомогательного дерева.
if (T.children[i] is empty)
Delete(T.aux, i)
(с)wikipedia.org
</pre>
Анонимный участник

Навигация