По-разному, вестимо :)
См. BTR_remove_node :-D
Да я рехнуся, если еще и туда полезу :)
Я пока делаю простое дерево в памяти и пытаюсь вникнуть в суть проблемы.
tree.h и еще одной реализации - пока хватает.
Понял, что (для параллельной обработки дерева) нужно делать нисходящее
деление/объединение.
PS Я не понял в чём конкретно твои сомнения...
Ключ первого элемент каждого нода дерева используется на уровне родителя.
Есть такие ключи, которые уходят вверх по дереву. То есть юзаются и у
дедушки и у прадедушки.
Когда грохается элемент с таким ключом, надо бы его везде у предков
обновить. При спуске вниз по дереву такое не сделаешь, потому что вместо
этого ключа надо поставить следующий. А следующего мы узнаем только
спустившись до нижних листьев дерева - когда найдем удаляемый элемент.
Вопрос FB - обновляет такие ключи у всех предков или только у
непосредственного родителя?
Надеюсь, я доходчиво объяснил свои сомнения :-)
Коваленко Дмитрий.