问题描述
我正在使用一种算法来描述例如here (p. 24-29)的树证书。
假设我有两棵树: A 和 B ,并且每棵树都有由上面的算法( C1 和 C2 )。
是真的,如果 C1 包含 C2 (任意位置的精确序列),则表示 A 包含 B 作为子树( B 基本上可以集中并视为 A 的叶节点)?如果没有,您可以举个反例吗?
-编辑-
算法:(请查看链接的示例):
-
标记所有带有字符串01的顶点
-
尽管G中有两个以上的顶点:
对于每个非叶子x:
- 让Y是与X相邻的叶子的标签集,以及从x删除的开头0和结尾1的x的标签。
- 将x的标签替换为Y中的标签浓度,并按字典顺序递增排序,其中0开头,1后面。
- 删除所有与x相邻的叶子。
-
如果仅剩一个顶点x,则报告x的标签作为证书。
-
如果还剩下两个顶点x和y,则按字典顺序递增集中x和y,并将其报告为证书。
解决方法
是的,这是真的。
假设证书是正确的,则证书不可能包含另一个证书,也不会是它的子树。