46. Расширить синтаксис языка Пролог, введя операции (см. встроенный предикат op/3) над комплексными числами. Следует использовать имя «isс» для операции извлечения результата и стандартные «+, -, *, /, ^» для арифметических операций.
Аргументы: арифметическое выражение; свободная переменная.
47. Определить глубину дерева.
Аргументы: произвольное бинарное дерево; глубина дерева.
48. Определить, являются ли два заданных дерева равными с точностью до перестановки левого и правого поддерева в каждом узле.
Аргументы: первое дерево; второе дерево.
49. Собрать все узлы в список.
Аргументы: произвольное бинарное дерево; список узлов.
50. В каждом узле дерева поменять при необходимости поддеревья местами так, чтобы в результирующем дереве в каждом узле выполнялось требование – количество узлов в левом поддереве не больше, чем в правом.
Аргументы: произвольное бинарное дерево; результирующее дерево.
51. Найти максимум количества узлов лежащих на одной глубине.
Аргументы: произвольное бинарное дерево; количество узлов.
52. Собрать в список имена всех узлов дерева, лежащих на заданной глубине.
Аргументы: произвольное бинарное дерево; необходимая глубина; список узлов.
53. Обрезать дерево на заданной глубине.
Аргументы: произвольное бинарное дерево; необходимая глубина; результирующее дерево.
54. Произвести следующую процедуру над деревом, начиная обработку с корня: в текущем узле с заданной вероятностью принимается решение об усечении дерева в этом узле (узел становится листом).
Аргументы: произвольное бинарное дерево; вероятность усечения; результирующее дерево.
55. Заданный узел в дереве сделать корнем дерева с той же связностью узлов, что и в исходном дереве. Результирующее дерево не является бинарным.
Аргументы: произвольное бинарное дерево; имя узла; результирующее дерево.
56. Подсчитать количество узлов дерева, лежащих на заданной глубине.
Аргументы: произвольное бинарное дерево; необходимая глубина; количество узлов.
57. Произвести обработку дерева в каждом узле по следующему правилу. Если узел имеет заданное имя, то все его дочерние узлы должны стать дочерними узлами его родительского узла, а сам этот узел удаляется из дерева.
Аргументы: произвольное бинарное дерево; имя узла; результирующее дерево.
58. Подсчитать количество узлов с заданным именем.
Аргументы: произвольное бинарное дерево; имя узла; количество узлов.
59. Определить путь между двумя заданными узлами.
Аргументы: произвольное бинарное дерево; имя первого узла; имя второго узла; путь (список).
60. Переименовать все узлы, имеющие заданное имя.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.