Forward, Backward, Backward+三种求SLCA的方法

 

                          A   simple XML document    

     

给出k个关键字的IDList,记录所有包含(直接、间接包含)关键字的ID号

对于上面的XML文档,给出查询Q={XML, Tom},关键字的IDList如下图所示

求SLCA的本质就是在K个IDLlist中求集合交集

(1)Forward:

         从前往后进行扫描,从K个IDList里选取最大的id号到其他k-1个IDList里进行二

         分查找,如果都找到了,说明当前的id是一个CA结点,接着找下一个CA结点,

         用下一个CA结点判断前一个CA结点是否为SLCA结点,具体方法是判断祖先后

         代关系。

 

(2)Backward:

         从后往前进行扫描,从K个IDList里选取最小的id号到其他k-1个IDList里进行二

         分查找,如果都找到了,说明当前的id是一个CA结点,且一定为SLCA结点,

         到一个CA结点,则从最短倒排中删除其所有的祖先结点。。。接着找下

         一个CA结点。
 

(3)Backward+:

         对Backward进行改进,缩小二分查找的范围,通过找父亲结点ID号,直到找

         到某个父亲节点的ID号比当前要查找的ID号小为止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值