Андрей Тонишевский
Андрей Тонишевский | Репутация: 98 (Без статуса) 21 декабря 2011 в 09:41
как посчитать листья надереве?
Александр Челоногов
Александр Челоногов | Репутация: 152 (Кандидат) 21 декабря 2011 в 11:28

При помощи рекурсии. Считаем детей главного листа. Потом рекурсивно считаем детей его детей и т.д.

Денис Звенин
Денис Звенин | Репутация: 105 (Кандидат) 21 декабря 2011 в 13:02

 sum_avg2:(treetype,integer,integer)determ(i,o,o). 
sum_avg2(tree(_,nil,nil),0,0):-!.   sum_avg2(tree(_,nil,R),Sum,A):-!, sum_avg2(R,Sum,A1), A=A1+1.   sum_avg2(tree(_,L,nil),Sum,A):-!, sum_avg2(L,Sum,A2), A=A2+1.   sum_avg2(tree(_,L,R),Sum,A):-        sum_avg2(L,L1,A1),        sum_avg2(R,R1,A2),        A=A1+A2+1,        Sum=L1+R1+1. 
 
Данный пердикат подщитывает среднее значения листьев. Я думаю будет не сложно взять с него только количество. =)