списки и деревья в Пролог
--------------------------------------------------------------------------------
Помогите, плиз, кто может!!!!
Надо написать две программки:
1. Определить предикат vnutri, так чтобы он отычкивал нужный элемент в двоичном справочнике и показывал путь к нему. Во что я написала, но оно находит элемент только если он являнтся корнем....
vnutri( Elem, der( _, Elem, _ ), [ Elem]).
vnutri( Elem, der( Left, K, _ ), [K | Path]) :-
bigger( K, Elem),
vnutri( Elem, Left, Path).
vnutri( Elem,der( _, K, Right), [K | Path]) :-
bigger( Elem, K),
vnutri( Elem, Right, Path).
bigger(X,Y):-X>Y.
и при запросе
vnutri(5,der(3,5,8),Path).
Path=[5]
а при запросе
vnutri(3,der(3,5,8),Path).
No solution
Почему?
2. поменять местами первый и третий, второй и четвертый элементы списка.
Но это я вообще не знаю как делать...
Заранее спасибо
Социальные закладки