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,并计算迭代次数需要找到该节点。解释和代码将非常有助于理解这种新语言..:)