Бинарными называют упорядоченные деревья, в которых каждый узел имеет не более двух, непосредственно следующих
за ним узлов (рис. 9).
a
c b d
g e f
h i
Рис. 9
Бинарные деревья наиболее часто используются для представления информации, обрабатываемой с помощью вычислительных машин. Рекурсивно бинарное дерево можно определить как конечное множество узлов, которое или пусто, или состоит из корня и двух не имеющих общих узлов бинарных деревьев – левого и правого.
Приписывая дуге, ведущей из произвольного узла к левому дереву, символ «0», а дуге, ведущей к правому дереву, символ «1», можно любой путь из корневой вершины (а вместе с ним и конечную вершину этого пути) закодировать с помощью нулей и единиц.
Например, на рис. 9 корневая вершина a получает в качестве кода пустую последовательность ∅, а остальные вершины следующие коды:
b – 1; c – 10; e – 100; f – 101;
d – 11; g – 111; h – 1110; i – 1111.
Найдем число различных бинарных деревьев с заданным числом вершин.
Пусть bn – число различных бинарных деревьев с n вершинами. Ясно, что b0 = 1 (имеется ровно одно пустое бинарное дерево) и b1 = 1.
При n > 0 всякое бинарное дерево с n вершинами имеет вид (a; (T0, T1)), где T0 – бинарное дерево с k < n вершинами, а T1 – бинарное дерево с n – k – 1 вершиной. Число способов расположить одно бинарное дерево с k < n вершинами слева от
корня, а другое бинарное дерево с n – k – 1 вершиной справа от корня равно bkbn–k–1. Следовательно, суммируя по всем k < n,
получаем:
bn = b0bn–1 + b1bn–2 + … + bn–1b0. (1)
В частности:
b1 = b02 = 1; b2 = b0b1 + b1b0 = 2;
b3 = b0b2 + b1b1+ b2b0 = 5; … .
Последние равенства показывают, что последовательность чисел (bn) – это последовательность чисел Каталана (см. 11.4).
Для полноты изложения напомним коротко, как могут быть
получены явные выражения в факториалах для чисел bn.