请帮助我需要在二叉搜索树中搜索并返回迭代次数来构建列表,我的谓词总是返回false
findExamsInRange(R1, R2, T, S, N) :- find(R1, R2, T, S, N), N > 0.
find(R1,R2, nil, [], N).
find(R1, R2, t(V,L,R), S, N) :-
V >= R1, V =< R2,
find(R1, R2, L, L, NL),
find(R1, R2, R, LR, NR),
append([V|LL], LR, S),
N is NL+NR+1.
find(R1, R2, t(V,L,R), S, N) :- V < R1, find(R1, R2, R, S, N).
find(R1, R2, t(V,L,R), S, N) :- V > R2, find(R1, R2, L, S, N).
如何解决这个问题? 没有人能回答,谁聪明可以解决它?
答案 0 :(得分:1)
如果你纠正了两个小问题(在find / 5谓词的第一个子句中与N
相关,在第二个中与LL
相关),那么你就有了可以搜索二叉树的代码数字。
下一步是修改树,以便它可以将数字与课程名称一起存储,即每个节点中的键和值。
最后,你必须编写一个从输入列表构建搜索树的谓词,然后就完成了。
我假设您被明确要求使用二叉树,否则直接在输入列表中搜索会更容易...