По-разному, вестимо :)

   См. BTR_remove_node :-D

Да я рехнуся, если еще и туда полезу :)

Я пока делаю простое дерево в памяти и пытаюсь вникнуть в суть проблемы. tree.h и еще одной реализации - пока хватает.

Понял, что (для параллельной обработки дерева) нужно делать нисходящее деление/объединение.

PS Я не понял в чём конкретно твои сомнения...


Ключ первого элемент каждого нода дерева используется на уровне родителя.

Есть такие ключи, которые уходят вверх по дереву. То есть юзаются и у дедушки и у прадедушки.

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

Вопрос FB - обновляет такие ключи у всех предков или только у непосредственного родителя?

Надеюсь, я доходчиво объяснил свои сомнения :-)

Коваленко Дмитрий.

Ответить