insert(X,leaf,branch(leaf,X,leaf)). insert(X,branch(L,Y,R),branch(L1,Y,R )) :- XY, insert(X,R,R1). element(X,leaf) :- fail. element(X,branch(L,Y,R)) :- XY, element(X,R). tuer(g,w). tuer(g,d). tuer(w,e). tuer(w,d). tuer(w,s). tuer(e,k). tuer(e,d). tuer(d,s). tuer(d,a). tuer(d,k). telefon(w). telefon(k). verbunden(X,Y) :- tuer(X,Y); tuer(Y,X). telefonsuche(S,P) :- telefonsuche(S,[S],P). telefonsuche(S,L,[S]) :- telefon(S). telefonsuche(S,L,[S|P]) :- not(telefon(S)), verbunden(S,X), not(member(X,L)), telefonsuche(X,[X|L],P).