如何在2-3棵树中搜索成员
下面的代码成功找到二叉树中的成员。只是现在我想在 2-3 树中找到一个成员。 (类似于 https://www.youtube.com/watch?v= vSbBB4MRzp4。)下面的最后一行是尝试执行此操作。但我不确定标记为 TBD 的项目要使用什么(并且该行的其他部分可能是错误的)。关于如何执行此操作有任何帮助吗?谢谢!
bTree(L,X,R).
member(X, bTree(L,Y,_)) :-
X #< Y,
member(X,L).
member(X, bTree(_,X,_)).
member(X, bTree(_,Y,R)) :-
X #> Y,
member(X,R).
member(X, bTree(L,Y,R)) :-
X #> TBD, X #< TBD
member(X,TBD).
The code below successfully finds a member in a binary tree. Except that now I want to find a member in a 2-3 tree. (Similar to the tree shown in https://www.youtube.com/watch?v=vSbBB4MRzp4.) The last line below is an attempt to do this. But I am unsure what to use for the items marked TBD (and other parts of this line could be wrong). Any help on how to do this? Thanks!
bTree(L,X,R).
member(X, bTree(L,Y,_)) :-
X #< Y,
member(X,L).
member(X, bTree(_,X,_)).
member(X, bTree(_,Y,R)) :-
X #> Y,
member(X,R).
member(X, bTree(L,Y,R)) :-
X #> TBD, X #< TBD
member(X,TBD).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 2–3-tree 中,每个节点可以是:
t(左,键,右)
,有一个钥匙和两个孩子,或t(左,键1,中间,键2,右)
,有两个键和三个孩子。因此,2-3-tree:
可以表示为:
搜索此树,您可以使用以下谓词:示例:
示例:
In a 2–3-tree, each node can be a:
t(Left,Key,Right)
, that has one key and two children, ort(Left,Key1,Middle,Key2,Right)
, that has two keys and three children.Thus, the 2-3-tree:
can be represented as:
To search this tree, you can use the following predicate:
Examples: