优先查找树介绍

 优先查找树(priority search tree)适于解决动态的已知区间集合的区间查询问题。此问题
间接地借助以下1.5维查询问题来解:已给平面土的点集5,对给定的x1,x2和y列举出S中所有包
含在矩形R = [x1,x2]×[0,y] 中的点,如图所示。此处S是动态的,要求增删方便,这要求对不
同的查询矩形R反复多次查询。
    优先查找树的地规定以具体如下:
(I)跟结点对应于y 坐标最小的点(x0,y0)  作一垂直线x = x' ,
将水平线y = y0以上部分分成两个子域,使左右于域中点数之差不超过1,
x’值称为分界值(discriminator)。将点(x0,y0)和x’值标在根结点上。 
(2)左右于树分别为水平线y=y0以上左右子域的优先查找树。
    图(b)为图(a)所示点集的优先查找
树,为了对应起见,此处将树画成根结点在下其他结点陆
续向上的形式,树的各个结点除了标明所对应的结定点以外、括号中数字为
相应的分界值。


    优先查找树可称为一种“共生“的数据结构,其特点为:对S中各点的y坐标来说,
树中任一结点的值不大于其子结点的值,这种结构称为一个堆(heap),因此从根结点起
向上的每一条路径相当于一个优先队列;对于分界值来说,此树相当于一个平衡二又树.
如果点分界值为x’,则其左于树各结点的值均小于x’,右子树各结点的值均大于x’,且
左右于树高度之差不超过l,显然,n个结点的优先查找树高度为O(log(n)),故插人删
除运算的时间复杂性为0〔log(n)).其占用空间为0(n)。
    列举点集S中所有包含在查询矩形R = [x1,x2]×[0,y]中的点,是利用优先
查找树从根结点起向上进行深度优先搜索(Depth-first-search).由每结点相应的分界值和
其对应点的x,y坐标,判断该结点相应的子域中是否有包含于R中的点,当确信无R中的
点时.则回溯(backtracking)搜索其他分枝。图(b)的例子中,标以星号*的
为列举的点.此搜索过程的时间复杂件为0(logn+k),其中k为列举出的R中的点数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值