顺序统计树

通过修改红黑树,使得可以在O(lgn)时间内确定任何的顺序统计量

顺序统计树T只是简单的在每个节点上存储附加信息的一棵红黑树,在红黑树的节点x中,除了通常属性x.key,x.color,x.p,x.left,x.right之外,还包括一个属性x.size,这个属性表示以x为根的子树的节点数,即这棵树的大小。

T.nil.size = 0
x.size = x.left.size + x.right.size + 1

返回以x为根的子树中包含第i小关键字的节点伪代码OS-SELECT(T.root,i)

OS-SELECT(x,i)
r = x.left.size + 1
if i == r
        return x
elseif i < r
        return OS-SELCT(x.left,i)
else
        return OS-SELCT(x.right,i-r)

确定一个元素的秩
给定指向顺序统计树T中节点x的指针,过程OS-RANK返回对T中序遍历对应的线性序列中x的位置

OS-RANK(T,x)
r = x.left.size + 1
y = x
while y ≠ T.root
        if y == y.p.right
              r = r + y.p.left.size + 1
        y = y.p
return r
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。 BST 二叉查找树(Binary...
    kanehe阅读 1,396评论 0 8
  • 1. AVL树 AVL树简单来说是带有平衡条件的二叉查找树.传统来说是其每个节点的左子树和右子树的高度最多差1(注...
    fredal阅读 1,850评论 0 4
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,292评论 0 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 用心多好句,出手自嘉章。 白鬓今朝客,青春昔日郎。 醉怀萦月梦,吟意化烟光。 眼里相望处,何曾隔远乡。
    雪窗_武立之阅读 219评论 0 0