
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.30] |
![]() |
|
Сообщ.
#1
,
|
|
|
Всем Привет! Вот задание: определить длину (число ветвей) пути от корня дерева до ближайшей вершины с заданным значением, если такая вершина отсутствует, ответ- "-1". Мне помогли сделать лабу вот код:
domains list=integer*. tree=der(tree,integer,tree); nil. predicates inside(integer,tree,list). count(list,integer,integer). clauses inside(X,der(_,X,_),[X]). inside(X,der(L,Kor,_),[Kor|Put]):- Kor>X, inside(X,L,Put). inside(X,der(_,Kor,R),[Kor|Put]):- X>Kor, inside(X,R,Put). count([_|T],N,NN):-N1=N+1,count(T,N1,NN). count([],N,N). goal clearwindow, write("Enter Element:\n"), readint(E), inside(E,der(der(der(nil,1,nil),2,nil),3,der(der(nil,4,nil),5,nil)),Spi), N=-1, count(Spi,N,NN), write("dlina min puti = ",NN); write("element ne naiden!"). Преподаватель сказал что дерево должно быть не упорядоченным. Мы должны пройтись по всему дереву и выбрать наименьший путь до заданной вершины. Этой вершины может быть сколько угодно в дереве. Помогите кто сможет переделать! |