Количество бинарных деревьев может быть рассчитано с использованием каталонского числа .
Количество деревьев двоичного поиска можно рассматривать как рекурсивное решение.
т. е. количество деревьев двоичного поиска = (количество слева поддеревьев двоичного поиска) * (количество справа поддеревьев двоичного поиска) * (способы выбора корня)
В BST имеет значение только относительное упорядочение между элементами. Таким образом, без потери общности мы можем предположить, что различные элементы в дереве 1, 2, 3, 4, ...., n . Кроме того, пусть число BST будет представлено f (n) для n элементов .
Теперь у нас есть несколько вариантов выбора корня.
- выберите 1 в качестве корневого элемента, элемент no можно вставить в левое поддерево. n-1 элементы будут вставлены в правое поддерево.
- Выберите 2 в качестве корневого элемента, элемент 1 можно вставить в левое поддерево. n-2 элементы могут быть вставлены в правое поддерево.
- Выберите 3 в качестве корневого элемента, элемент 2 можно вставить в левое поддерево. n-3 элементы могут быть вставлены в правом поддереве.
...... Аналогично, для i-го элемента в качестве корневого элемента элементы i-1 могут быть слева и ni на право.
Эти поддеревья сами по себе BST, поэтому мы можем суммировать формулу как:
f (n) = f (0) f (n-1) + f (1) f (n-2) + .......... + f (n -1) F (0) * +1051 ** 1 053 *
Базовые чехлы,
f (0) = 1, поскольку существует ровно 1 способ сделать BST с 0 узлами.
f (1) = 1, поскольку существует ровно 1 способ сделать BST с 1 узлом.