arbol en xpce prolog
Publicado por ricky (1 intervención) el 24/10/2007 15:46:50
hola necesito ayuda en el siguiente arbol en xpce swi prolog , lo ke pasa es ke cuando varios nodos padres tienen un nodo hijo en comun, se crean varios un nodos hijos iguales para cada uno, lo ke kiero es saber es como hacerle para que dichos nodos padres apunten solamente a un solo nodo hijo ke tengan an comun. en resumen ke varios padres puedan apuntar a un solo nodo hijo
display_hierarchy(Root) :-
new(P, picture(string('Hierarchy from %s', Root))),
send(P, open),
send(P, display, tree(new(Node, node(text(Root))))),
expand_hierarchy(Root, Node).
expand_hierarchy(Root, Node) :-
forall(leng(Sub, Root),
(send(Node, son, new(Son, node(text(Sub)))),
expand_hierarchy(Sub, Son))).
% predicados
leng(algol,fortran).
leng(simula,algol).
leng(c,algol).
leng(cpp,algol).
leng(cpp,simula).
leng(cpp,c).
leng(smalltalk,simula).
leng(java,smalltalk).
leng(java,cpp).
leng(c_sharp,cpp).
leng(c_sharp,java).
leng(d,cpp).
leng(d,c_sharp).
leng(d,java).
% imprimir arbol
:- display_hierarchy(fortran).
display_hierarchy(Root) :-
new(P, picture(string('Hierarchy from %s', Root))),
send(P, open),
send(P, display, tree(new(Node, node(text(Root))))),
expand_hierarchy(Root, Node).
expand_hierarchy(Root, Node) :-
forall(leng(Sub, Root),
(send(Node, son, new(Son, node(text(Sub)))),
expand_hierarchy(Sub, Son))).
% predicados
leng(algol,fortran).
leng(simula,algol).
leng(c,algol).
leng(cpp,algol).
leng(cpp,simula).
leng(cpp,c).
leng(smalltalk,simula).
leng(java,smalltalk).
leng(java,cpp).
leng(c_sharp,cpp).
leng(c_sharp,java).
leng(d,cpp).
leng(d,c_sharp).
leng(d,java).
% imprimir arbol
:- display_hierarchy(fortran).
Valora esta pregunta


0