Suma nodurilor unui arbore binar

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Suma nodurilor unui arbore binar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Iosif Chelu, an III-ZI, 2009. % Facultatea de Matematica si Informatica, Universitatea Spiru Haret Bucuresti. % http://fmi.spiruharet.ro/bodorin/aicl.html %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Prolog, TP 2.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Suma nodurilor unui arbore binar. CONSTANTS t1 = t(4,t(3,t(8,t(1,e,e),e),t(0,t(2,e,e),t(2,e,t(3,e,t(5,e,e))))),t(5,e,t(1,t(4,e,e),t(3,t(5,e,e),t(2,e,e))))) t2 = t(4,t(3,e,e),t(5,t(2,e,e),t(7,e,e))) % t1: % ________4________ % ____3____ 5______ % __8 __0__ ____1____ % 1 2 2__ 4 __3__ % 3__ 5 2 % 5 % t2: _______4______ % 3 _____5_____ % 2 7 DOMAINS i=integer r=real lr=r* rbt = t(r,rbt,rbt);e PREDICATES rbt_sum(rbt,r) CLAUSES % Suma nodrilor unui arbore binar rbt_sum(e,0):-!. rbt_sum(t(H,e,e),H):-!. rbt_sum(t(H,L,R),S):- rbt_sum(L,SL), rbt_sum(R,SR), S=H+SL+SR.