Регистрация
Среда программирования: SWI-Prolog
Название работы: 72. Бинарные деревья задаются с помощью тернарного функтора tree(Left,Root,Right). 85. Напишите предикат p(+W,–R), который из вложенного списка W делает вложенный список R, заменяя каждый элемент Y списка W на число, равное глубине вхождения Y в W.
Вид работы: Лабораторная работа
Описание: 72. Бинарные деревья задаются с помощью тернарного функтора tree(Left,Root,Right), где Root - элемент, находящийся в вершине, а Left и Right - соответственно левое и правое поддерево. Пустое дерево изображается атомом nil. Следующий терм является примером более сложного дерева tree(nil, 5, tree(nil, 6, tree(tree(nil, 8, nil), 10, nil))).
Напишите предикат p(+T,+X,+Y,–R), который из бинарного дерева T делает бинарное дерево R, совпадающее с T, за исключением того, что вершины дерева, содержащие также в списке X, меняются на соответствующие (по порядку) вершины из списка Y.
Пример,
?– p(tree(nil, 5, tree(nil, 6, tree(tree(nil, 8, nil), 10, nil))),[5,8,7],[50,80,70],R).
R= tree(nil, 50, tree(nil, 6, tree(tree(nil, 80, nil), 10, nil)))
Yes
85. Напишите предикат p(+W,–R), который из вложенного списка W делает вложенный список R, заменяя каждый элемент Y списка W на число, равное глубине вхождения Y в W.
Для списка [a b [c [d]] [e g] f] глубину вхождения элементов списка можно определить так:
a, b, f – глубина вхождения = 1
c, e, g – глубина вхождения = 2
d – глубина вхождения = 3
Все элементы исходного списка имеют глубину вхождения 1; как только появляется подсписок, то для его элементов глубина вхождения увеличивается на 1.
Год: 2019
Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2019-м году, в рамках этого заказа была разработана программа в среде программирования SWI-Prolog. Если у Вас похожее задание на программу, которую нужно написать на SWI-Prolog, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2019-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".
Тел.: ![]() Viber: ![]() Telegram: ![]() ВКонтакте: ![]() ![]() E-mail: ![]() Skype: ![]() |