从BST-Prolog中提取子树
假设您有一个二叉搜索树:从BST-Prolog中提取子树,prolog,binary-search-tree,subtree,Prolog,Binary Search Tree,Subtree,假设您有一个二叉搜索树: t(73,t(31,t(5,无,无),无),t(101,t(83,无,t(97,无,无)),t(200,无,无)) 即: 73 / \ 31 101 / / \ 5 83 200 / 97
t(73,t(31,t(5,无,无),无),t(101,t(83,无,t(97,无,无)),t(200,无,无))
即:
73
/ \
31 101
/ / \
5 83 200
/
97
101
/ \
83 200
/
97
我需要编写一个谓词子树(X1,X2,T),它将从树(X1和X2)中获取2
值,并为它们找到最小的公共父级,并将其子树存储在T中
因此,对于上面的示例,如果我查询:
子树(83200,X)。
我应该回去了:
t(101,t(83,nil,t(97,nil,nil)),t(200,nil,nil))
即:
73
/ \
31 101
/ / \
5 83 200
/
97
101
/ \
83 200
/
97
因为101
是我两个数字的最小公共值,所以我得到了那个子树。
我怎么能这么做
谢谢 一般步骤如下所示:
我希望这能提供足够的帮助。是的,我知道这是我的基本想法,只是对代码不太确定。。不知道怎么写。