> 1 <

Автор Сообщение

Никита

Members


Статус

1 сообщений

Где: Russia
Род занятий:
Возраст:

#7637   2015-05-24 14:03 GMT+3 часа(ов)      
Здравствуйте, помогите пожалуйста с программой, бьюсь с ней уже давно, но никак не получается. Вот задание: "Заданы два дерева с помощью цепных списков. Определить, является ли второе дерево поддеревом первого". Есть код, правда не совсем так работает.
 
 
(defun eqtree (tree subtree) ;;сравнение двух деревьев
((null tree)nil)
((null subtree)nil)
((listp(car subtree))(setq x (levelup tree '()))
(setq y (levelup subtree '()))(eqtree x y))
(cond((and(atom (car tree)) (atom (car subtree)))
((equal (car tree)(car subtree))(print true)
(eqtree (cdr tree)(cdr subtree))))
(eqtree (car tree)(cdr subtree))
)
((and(listp(car tree)) (listp(car subtree)))
(setq x (levelup tree '()))(setq y (levelup subtree '()))
(eqtree x y))
 
(eqtree (car tree)(cdr subtree))
)
 
 
 
(defun levelup (tree result) ;;функция перехода на уровень выше
(if (>(length tree) 0)
(if (listp (car tree))
(levelup (cdr tree)
(append (car tree) result))
(levelup (cdr tree) result)
)
result
)
)
 
> 1 <


Онлайн :

0 пользователь(ей), 31 гость(ей) :




Реклама на сайте: