我读了一个关于Twig Pattern Matching作为TJfast算法的算法。 有一个函数作为dbl(n),参数n是一个节点,这个函数返回直接分支或叶子节点,但我无法理解,文章的名称是"从区域编码到扩展杜威:关于XML枝条模式匹配的有效处理"有一个例子但对我来说含糊不清。 根据文章中的定义:
dbl(v)(用于直接分支或 leaf node)返回树枝中所有分支节点b和叶节点f的集合 以v为根,使得从v到b或路径上没有分支节点 f,不包括v,b或f。
示例:
dbl(a)={b,c}
dbl(c)={f,g}
我无法理解为什么dbl(c)= {f,g} ??
答案 0 :(得分:0)
dbl (directBranchingOrLeafNodes)
仅包含分支节点和叶节点。在这些节点中,它只包含在它们和根之间存在 no 中间分支节点的节点。
很难找到分支节点的定义,但它似乎是一个拥有多个子节点的节点。 d
和e
不是分支节点,因为它们只有一个子节点。因此,它们不能成为dbl(c)
的一部分。
然后,从c
到f
的路径没有分支节点,因此f
位于dbl(c)
。同样,从c
到g
的路径没有分支节点,因此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)的祖先。