Вершины дерева - Prolog
Формулировка задачи:
написать программу для подсчета количества листьевых вершин бинарного дерева, значения которых лежат в определенном диапазоне
помогите понять какой диапазон, это то есть вершины с этими значениями?
Решение задачи: «Вершины дерева»
textual
Листинг программы
domains tree=nil;t(integer,tree,tree) i=integer L=integer* predicates n(tree,L,integer,integer). add(L,integer,L) append(L,L,L) deleteodd(L,L) clauses add([H|T],E,[H|Result]):- add(T,E,Result). add([],E,[E]). append([], L1, L1). append([X|L1], L2, [X|L3]):- append(L1, L2, L3). n(nil,[],Min,Max). n(t(H,Left,Right),L,Min,Max):-H < Max, H > Min,!,n(Left,LL,Min,Max),n(Right,LR,Min,Max), append(LL,LR,LTemp), add(LTemp,H,L). n(t(_,Left,Right),L,Min,Max):-n(Left,LL,Min,Max),n(Right,LR,Min,Max), append(LL,LR,L). deleteodd([],[]):-!. deleteodd([_],[]):-!. deleteodd([HH|[_|L]],[HH|LL]):- deleteodd(L,LL),!. goal n(t(5,t(3,t(7,nil,nil),nil),t(1,t(30,t(15,nil,nil),nil),t(4,nil,nil))),L,1,10), write("L=",L),nl, deleteodd(L,IL).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д