直接分支或叶节点(dbl)如何在Tjfast算法中起作用?

时间:2015-03-14 07:57:58

标签: algorithm graph-algorithm

我读了一个关于Twig Pattern Matching作为TJfast算法的算法。 有一个函数作为dbl(n),参数n是一个节点,这个函数返回直接分支或叶子节点,但我无法理解,文章的名称是"从区域编码到扩展杜威:关于XML枝条模式匹配的有效处理"有一个例子但对我来说含糊不清。 根据文章中的定义:

  

dbl(v)(用于直接分支或   leaf node)返回树枝中所有分支节点b和叶节点f的集合   以v为根,使得从v到b或路径上没有分支节点   f,不包括v,b或f。

示例:

enter image description here

dbl(a)={b,c}
dbl(c)={f,g}

我无法理解为什么dbl(c)= {f,g} ??

2 个答案:

答案 0 :(得分:0)

dbl (directBranchingOrLeafNodes)仅包含分支节点和叶节点。在这些节点中,它只包含在它们和根之间存在 no 中间分支节点的节点。

很难找到分支节点的定义,但它似乎是一个拥有多个子节点的节点。 de不是分支节点,因为它们只有一个子节点。因此,它们不能成为dbl(c)的一部分。

然后,从cf的路径没有分支节点,因此f位于dbl(c)。同样,从cg的路径没有分支节点,因此g位于dbl(c)中。 所以我们有:

dbl(c) = {f,g}

我猜他们可能会使用dbl来表示子查询。

答案 1 :(得分:0)

dbl(a)= {b,c},因为b是叶节点,c是分支节点,它们都是a的后代。另外,请注意,没有其他分支节点或叶节点是b(或c)的a和祖先的后代。

dbl(c)= {f,g},因为f和g是叶节点,它们都是c的后代。另外,请注意,没有其他分支节点或叶节点是c的后代和f(g)的祖先。