Одна из простых оптимизаций состоит в том, чтобы сделать его красно-черным деревом, что позволит избежать некоторых наихудших сценариев. TST на самом деле являются просто двоичными деревьями, где значением данного узла является другой TST. Таким образом, «средний» дочерний элемент узла на самом деле не является частью дерева, которое балансируется на каждом уровне, так как он все равно не может перейти к другому родительскому элементу.
Это гарантирует, что каждый уровень дерева пройден в журнале (R), хотя вы, вероятно, могли бы сделать еще лучше, принимая во внимание размер подзапросов в каждом узле. Хотя это выглядит намного сложнее!