算法之预排序遍历树算法

在我们需要快速查询后代或者祖先的需求中,预排序遍历树算法就显示了出来

预排序遍历树算法顾名思义其实在数据落地之前就计算好了顺序,是一种有序的树状结构

这种树,依赖左值与右值来快速排序

如图:


WechatIMG399.jpeg

祖先的左值如果从N开始排序,子孙的左值则N+1,,右值则为(N+1)+1,如果父级有两个子孙节点,那么从该子孙节点的右节点的左值就左节点的右值N+1,右值则为(N+1)+1

从上图中,假定我们需要搜索某个祖先下的后代

如:第二代的2 -7
那么left>2 并且同时满足条件 right<7 即为它的后代

在上图中,假定我们需要查询某个子孙的祖先

如:第三代的 3 - 4
那么left<3 并且同时满足条件 right > 4 即为它的祖先

你可能感兴趣的:(算法之预排序遍历树算法)