Tree 在指定的深度修剪树。在序言中
参数:任意二叉树;必要的深度;结果树 结果:Tree 在指定的深度修剪树。在序言中,tree,prolog,binary-tree,trim,depth,Tree,Prolog,Binary Tree,Trim,Depth,参数:任意二叉树;必要的深度;结果树 结果: ?- pred(s(f(b(m,k),a),t(a,g)),2,X). X = s(f,t) yes ?- pred(s(f(b(m,k),a),t(a,g)),3,X). X = s(f(b,a),t(a,g)) yes ?- 有人能帮我吗?让我们重新整理一下你的例子: ?-pred(s(f(b(m,k),a),t(a,g)),3,X)。 X=s(f(b,a),t(a,g))是的 ?-pred(s(f(b(m,k),a),t(a,g)),
?- pred(s(f(b(m,k),a),t(a,g)),2,X).
X = s(f,t) yes
?- pred(s(f(b(m,k),a),t(a,g)),3,X).
X = s(f(b,a),t(a,g)) yes
?-
有人能帮我吗?让我们重新整理一下你的例子:
?-pred(s(f(b(m,k),a),t(a,g)),3,X)。
X=s(f(b,a),t(a,g))是的
?-pred(s(f(b(m,k),a),t(a,g)),2,X)。
X=s(f,t)是
?-pred(s(f(b(m,k),a),t(a,g)),1,X)。
是的
?-pred(s(f(b(m,k),a),t(a,g)),0,X)。
不
现在很清楚需要做什么了,不是吗
这个谜题的另一部分是所谓的“univ”谓词
9?-s(f(b(m,k),a),t(a,g))=。。[A,B,C]。
A=s,
B=f(B(m,k),a),
C=t(a,g)。
10?-X=。。[s,f(b(m,k),a),t(a,g)]。
X=s(f(b(m,k),a),t(a,g))。
11?-X=。。[s,f(b,a),t(a,g)]。
X=s(f(b,a),t(a,g))。
12?-X=。。[s,f,t]。
X=s(f,t)。
13?-X=。。[s] 。
X=s。
14?-s=。。十,。
X=[s]。
这就是如何分解数据并重新构建数据的方法
最后,您需要使用递归:
递归(输入、输出):-
基本关系(输入、输出)。
递归(输入、输出):-
成分(In、自相似部分、残留物),
映射列表(递归、自相似部分、InterimResults),
成分(外、中间、剩余)。
请在此显示一些努力。如果你根本不懂序言,那就去读一本好的教程或教科书。仅仅说明一个问题,并期望有人绞死你一个完整的,有效的答案不是这个网站的目的。