1

Prolog の初心者で、バイナリ ツリーを数時間使用しています。しかし、Prolog の世界の初心者として、その作業手順について少し混乱しています。ツリーを形成し、ツリーのノードをカウントするコードを実行します。テストすると、プログラムは次のように出力されます..

?- constructTree(T),count_nodes(T,N).
T = tree(1, tree(2, tree(3, nil, nil), tree(4, nil, nil)), tree(5, tree(6, nil, nil), tree(7, nil, nil))),
N = 7.

ここで、 Tは対応するツリー、Nはツリーのノード番号を表します。

対応するコードは次のとおりです。

constructTree(tree(1,
            tree(2,
                tree(3,nil,nil),
                tree(4,nil,nil)),
            tree(5,
                tree(6,nil,nil),
                tree(7,nil,nil))
        )
    ).
count_nodes(nil,0).
count_nodes(tree(_,L,R),N):-
    count_nodes(L,CL),
    count_nodes(R,CR),
    N is CL+CR+1.

特にDFS検索を使用したい場合、検索ノード手法を実装するにはどうすればよいですか? DFS検索を使用してノード5を見つけたいと考え、そのノードを見つけるために反復回数をカウントする必要があります。コードと一緒に説明すると、この新しい言語を理解するのに非常に役立ちます..:)

4

1 に答える 1