Алгоритм формирования бинарного дерева «снизу вверх»
1. Инициализировать очередь.
2. Последовательно обрабатывать символы последовательности, пока не достигнут концевой маркер.
3. Если прочитанный символ точка, то поместить в очередь пустое БД, иначе создать корень, записать в него символ, взять из очереди его левое, затем правое поддерево, полученное БД поместить в очередь.
4. Если по окончании работы алгоритма очередь окажется пустой, то сформировано пустое БД, иначе очередь будет содержать единственный элемент — корень сформированного дерева.
При обходе БД (см. рис.25) в симметричном порядке получим последовательность: .D.C.E.B.F.A.G.I.H.J.
Такую же последовательность получим при обходе в симметричном порядке БД на рис.26, поэтому она неоднозначно определяет БД и не может быть использована в качестве исходных данных для формирования БД.
. . . . .
. . . . . .
Рис.26. Бинарное дерево
Рассмотрим алгоритм формирования БД, в котором для любой вершины Ti значения всех вершин в левом поддереве должны быть меньше значения в вершине Ti, а в правом — больше. Такое дерево можно построить, обработав последовательность неповторяющихся значений.