Существует ли алгоритм журнала (n) для обеспечения свойства без пробелов после вставок и удалений в деревья произвольных размеров?
Нет.
Чтобы понять почему, рассмотрим это дерево (которое имеет свойство без пробелов):
4
/ \
2 6
/| |\
1 3 5 7
Чтобы вставить 8, вам нужно получить следующее:
5
/ \
3 7
/| |\
2 4 6 8
/
1
, что явно требует посещения каждого узла хотя бы один раз, потому что каждый отдельный узел впоследствии имеет другого родителя, чем прежде.Следовательно, вы не можете гарантировать лучшее время, чем O ( n ).
Аналогично, чтобы удалить 1, вам понадобится следующее:
5
/ \
3 7
/| |
2 4 6
что, та же проблема.