Bergervei/Prolog-Das Haus des Nikolaus
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Prolog</language> == Vollständige Strecken == <code id="512943ac79289"> %Festlegung des Graphen (Nikolaushaus) kante(a,b). kante(b,c). kante(c,d). kante(d,e). kante(e,a). kante(b,d). kante(a,d). kante(e,b). verbunden(A,B):-kante(A,B). verbunden(A,B):-kante(B,A). %Rundstrecke mit Tiefensuche tstrecke(Route,Weg):- Route=[Anfang|_], findall([A,B], (kante(A,B),element(A,Route),element(B,Route)), Strecken), tsuche(Anfang,[Anfang],Weg,Strecken). %Tiefensuche tsuche(Knoten,Weg,Weg,[]):-!. tsuche(Knoten,Teilpfad,Weg,Strecken):- verbunden(Knoten,NKnoten), teilliste([Knoten,NKnoten],Strecken), streichliste([Knoten,NKnoten],Strecken,NStrecken), tsuche(NKnoten,[NKnoten|Teilpfad],Weg,NStrecken). %Tiefensuche nach allen moeglichen Rundstrecken tsuche_alle(Route):- findall(Weg,tstrecke(Route,Weg),Liste), ausgabe(Liste). </code> <run id="512943ac792f1"> tsuche_alle([a,b,c,d,e]). </run>