У меня скоро промежуточный экзамен, поэтому я работаю над практическими задачами. Я не знаю, с чего начать.
Дерево 2-3 - это дерево, в котором каждый нелистовой узел может иметь двух или трех дочерних элементов, а все поддеревья узла имеют одинаковую высоту. Если мы проигнорируем условие высоты поддеревьев, мы можем сделать следующее определение типа SML:
тип данных ’a twoThreeTree = | Пустой
| Двоичный из ’a *’ a twoThreeTree * ’a twoThreeTree
| Ternary of ’a *’ a twoThreeTree * ’a twoThreeTree *’ a twoThreeTree;
а. Напишите рекурсивную функцию N, которая вычисляет количество узлов в 2–3 дереве.
б. Напишите рекурсивную функцию ht, которая вычисляет высоту 2-3-х деревьев. (По аналогии с бинарными деревьями сделайте высоту пустого дерева равной -1.
Во всяком случае, все, что мне нужно, - это помощь с частью а. Думаю, я мог бы использовать то, что я узнал из а), для выполнения б).