Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
6 / 6 / 2
Регистрация: 06.12.2009
Сообщений: 51
1

Является ли дерево поддеревом другого дерева

06.12.2009, 21:11. Показов 3455. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста как в прологе можно определить, является ли дерево Т1 поддеревом дерева Т. Я пользуюсь VIP 5.2. Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2009, 21:11
Ответы с готовыми решениями:

Графовая задача (является ли одно дерево поддеревом другого)
Заданы два дерева с помощью цепных списков. Определить, является ли второе дерево поддеревом...

Заданы два дерева с помощью цепных списков. *Определить, является ли второе дерево поддеревом первого
Заданы два дерева с помощью цепных списков. *Определить, является ли второе дерево поддеревом...

Определить, является ли второе дерево поддеревом первого
HASKELL. задано 2 дерева. нужно определить является ли второе дерево поддеревом первого. ...

Определить, является ли второе дерево поддеревом первого
Нужна помощь, задача описана в заголовке. Смотрел похожие задачи, но не получается реализовать....

5
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
08.12.2009, 23:49 2
а какое дерево, двоичное или нет?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.12.2009, 04:42 3
В прологе сам полный 0. Но на тех языках, кторые я знаю, надо пройти по всем узлам T, сравнивая их адреса с адресом корня T1. Если найдёшь одно совпадение, то является, иначе - нет. Больше одного совпадения быть не может.
0
6 / 6 / 2
Регистрация: 06.12.2009
Сообщений: 51
09.12.2009, 13:47  [ТС] 4
Цитата Сообщение от Грымзик Посмотреть сообщение
а какое дерево, двоичное или нет?
Да, бинарное. Забыл указать.
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
09.12.2009, 20:33 5
Тогда это совсем просто. Я visual не пользуюсь, поэтому
только предикат напишу.
Prolog
1
2
check(X,X):-!.
check(tr(_,Left,Right),Tree):-check(Left,Tree);check(Right,Tree).
Prolog
1
2
?- check(tr(5,tr(7,tr(9,nil,nil),tr(8,nil,nil)),tr(6,nil,tr(4,tr(3,nil,nil),tr(1,nil,nil)))), tr(4,tr(3,nil,nil),tr(1,nil,nil))).
true.
0
6 / 6 / 2
Регистрация: 06.12.2009
Сообщений: 51
09.12.2009, 21:56  [ТС] 6
Спасибо большое, получилось! Вот код для Visual, может кому пригодится
Prolog
1
2
3
4
5
6
7
8
DOMAINS
tree=tr(integer,tree,tree);e      
PREDICATES
    check(tree,tree)
GOAL check(tr(5,tr(7,tr(9,e,e),tr(8,e,e)),tr(6,e,tr(4,tr(3,e,e),tr(1,e,e)))), tr(4,tr(3,e,e),tr(1,e,e))).
CLAUSES
check(X,X):-!.
check(tr(_,Left,Right),Tree):-check(Left,Tree);check(Right,Tree).
1
09.12.2009, 21:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2009, 21:56
Помогаю со студенческими работами здесь

Определить, является ли второе дерево поддеревом первого
Заданы два дерева с помощью цепных списков. *Определить, является ли второе дерево поддеревом...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Переписать программу с 2-3-4 дерева на 2-3 дерево
Эту реализацию 2-3-4 дерева я взял из книги Лафоре (Структуры данных и алгоритмы java). Там...

Бинарное Дерево(обход дерева)
добрый вечер всем!) в универе задали написать бинарное дерево со всеми видами обхода и т.п. я их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru