Prologでリーフノードのリストを取得する方法を知っている人はいますか?
たとえば、これらの有向辺で記述される単純な有向グラフがあるとします。
de(0,1).
de(0,2).
de(2,3).
de(2,4).
de(3,4).
de(4,5).
では、グラフを再帰的にブラウズし、それら 2 つのリーフ ノード (ノード 1 と 5) のリストを作成する方法は?
答えてくれてありがとう!
編集:
さて、私は最初の述語を書いて動作させています:
isLeaf(Node) :-
not(de(Node,_)).
しかし今、グラフをトラバースしてリーフノードの出力リストを書き込む方法がわかりません。私は知っています、それはとても簡単ですが、私はこの考え方とプログラミングの経験がありません:(