Допишите генератор деревьев, чтобы выдаваемые им деревья имели количество вершин, точно соответствующее числу, указанному в его первом аргументе.
Измените предикат, удаляющий значение из двоичного справочника, так, чтобы удалялся не минимальный элемент правого поддерева, а максимальный элемент левого поддерева.
Создайте предикат, находящий максимальное из значений, находящихся в вершинах дерева.
Создайте предикат, проверяющий, что дерево является двоичным справочником.
Создайте предикат, переписывающий дерево в двоичный справочник.
Создайте предикат, который будет находить среднеарифметическое значений, находящихся в вершинах дерева.
Создайте предикат, который будет находить среднеарифметическое значений, находящихся в листьях дерева.
Модифицируйте предикат, находящий сумму чисел, расположенных в вершинах дерева так, чтобы он суммировал только положительные числа.
Измените его еще раз, чтобы он вычислял произведение отрицательных чисел.
Модифицируйте предикат, "сворачивающий" двоичный справочник в список с сохранением порядка элементов, чтобы на выходе получалось два списка, содержащих, соответственно, положительные и отрицательные значения.
Создайте предикат, подсчитывающий количество всех вершин данного дерева, значения которых принадлежат заданному диапазону.
Создайте предикат, подсчитывающий количество всех вершин данного дерева заданной высоты.
Создайте предикат, выводящий значения находящиеся в вершинах заданной высоты.
Создайте предикат, проверяющий, является ли одно дерево поддеревом второго.
Создайте предикат, выводящий дерево на экран (или в файл), расположив дерево следующим образом: корень находится слева, а листья справа.
Создайте предикат, выводящий дерево на экран (или в файл), расположив дерево обычным образом: корень находится сверху, а листья снизу.