Вопрос 8. Написать программу для проверки двух бинарных деревьев на изоморфность .


Добавил:DMT
Дата создания:30 декабря 2007, 19:22
Дата обновления:30 декабря 2007, 19:22
Просмотров:6893 последний 4 декабря, 3:10
Комментариев: 2
Вопрос 8. Написать программу для проверки двух бинарных деревьев на изоморфность .
up

Комментарии для "Вопрос 8. Написать программу для проверки двух бинарных деревьев на изоморфность ."


Пользователь: kate
Сообщений: 9
Статус: Незримый
Зарегистрирован:
4 января 2008, 14:05
Был:28 января 2008, 21:05
kate
smsup
Дата: 4 января 2008, 14:41 Сообщение № 1
В методе вот это нашла!
Код на Lisp
  1. isotree ( T1, T2 ).
  2. // истинно, если Т1 изоморфно Т2
  3. isotree ( void, void ).
  4. isotree (tree ( X, L1, R1 ), tree ( X, L2, R2 ) ):-
  5. isotree (L1, L2 ), isotree ( R1, R2 ).
  6. isotree (tree ( X, L1, R1 ), tree ( X, L2, R2 ) ):-
  7. isotree (L1, R2 ), isotree ( L2, R1 ).
  8.  
При использовании обязательна ссылка на http://DMTSoft.ru
Пользователь: lilo
Сообщений: 38
Статус: Незримый
Зарегистрирован:
8 января 2008, 12:39
Был:9 апреля 2008, 19:55
lilo
smsup
Дата: 8 января 2008, 12:52 Сообщение № 2
Код на Lisp
  1. domains
  2. tree = tree(string, tree, tree); void
  3. predicates
  4. izomorph(tree,tree)
  5. clauses
  6. izomorph(X,X).
  7. izomorph(tree(X,L1,R1),tree(X,L2,R2)) :- izomorph(R1,L2),
  8. izomorph(L1,R2).
  9. izomorph(tree(X,L1,R1),tree(X,L2,R2)) :- izomorph(L1,L2),
  10. izomorph(R1,R2).
  11. goal
  12. izomorph(tree("a",tree("b",tree("d",void,void),tree("e",void,
  13. void)),tree("c",void,void)),
  14. tree("a",tree("b",tree("d",void,void),tree("e",void,
  15. void)),tree("c",void,void))),
  16. write("true").
При использовании обязательна ссылка на http://DMTSoft.ru