На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Пролог-дерево , Помогите переделать лабу
    Всем Привет! Вот задание: определить длину (число ветвей) пути от корня дерева до ближайшей вершины с заданным значением, если такая вершина отсутствует, ответ- "-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!").

    Преподаватель сказал что дерево должно быть не упорядоченным. Мы должны пройтись по всему дереву и выбрать наименьший путь до заданной вершины. Этой вершины может быть сколько угодно в дереве. Помогите кто сможет переделать!
    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0192 ]   [ 14 queries used ]   [ Generated: 18.07.25, 04:01 GMT ]