树堆

✍ dations ◷ 2025-10-06 18:17:18 #树结构

树堆(英语:Treap),是有一个随机附加域满足堆的性质的二叉搜索树,其结构相当于以随机数据插入的二叉搜索树。其基本操作的期望时间复杂度为 O ( log n ) {\displaystyle O(\log {n})} 。相对于其他的平衡二叉搜索树,Treap的特点是实现简单,且能基本实现随机平衡的结构。

Treap=Tree+Heap。Treap本身是一棵二叉搜索树,它的左子树和右子树也分别是一个Treap,和一般的二叉搜索树不同的是,Treap纪录一个额外的数据,就是优先级。Treap在以关键码构成二叉搜索树的同时,还满足堆的性质。Treap维护堆性质的方法用到了旋转,只需要两种旋转,编程复杂度比Splay要小一些。

给节点随机分配一个优先级,先和二叉搜索树的插入一样,先把要插入的点插入到一个叶子上,然后跟维护堆一样,如果当前节点的优先级比根大就旋转,如果当前节点是根的左儿子就右旋如果当前节点是根的右儿子就左旋。

由于旋转是 O ( 1 ) {\displaystyle O(1)} 的,最多进行h次(h是树的高度),插入的复杂度是 O ( h ) {\displaystyle O(h)} 的,在期望情况下 h = O ( log n ) {\displaystyle h=O(\log {n})} ,所以它的期望复杂度是 O ( log n ) {\displaystyle O(\log {n})}

因为Treap满足堆性质,所以只需要把要删除的节点旋转到叶节点上,然后直接删除就可以了。具体的方法就是每次找到优先级最大的儿子,向与其相反的方向旋转,直到那个节点被旋转到了叶节点,然后直接删除。

删除最多进行 O ( h ) {\displaystyle O(h)} 次旋转,期望复杂度是 O ( log n ) {\displaystyle O(\log {n})}

和一般的二叉搜索树一样,但是由于Treap的随机化结构,Treap中查找的期望复杂度是 O ( log n ) {\displaystyle O(\log {n})}

二叉搜索树有一个特性,就是每个子树的形态在优先级唯一确定的情况下都是唯一的,不受其他因素影响,也就是说,左子树的形态与树中大于根节点的值无关,右子树亦然。这是因为Treap满足堆的性质,Treap的根节点是优先级最大的那个节点,考虑它的左子树,树根也是子树里面最大的一点,右子树亦然。所以Treap相当于先把所有节点按照优先级排序,然后插入,实质上就相当于以随机顺序创建的二叉搜索树,只不过它并不需要一次读入所有数据,可以一个一个地插入。而当这个随机顺序确定的时候,这个树是唯一的。因此在给定优先级的情况下,只要是用符合要求的操作,通过任何方式得出的Treap都是一样的,所以不改变优先级的情况下,特殊的操作不会造成Treap结构的退化。而改变优先级可能会使Treap变得不够随机以致退化。

Treap的其它操作的期望复杂度同样是 O ( log n ) {\displaystyle O(\log {n})}

相关

  • 普罗大众无产阶级(拉丁语:proletarius),或意译为劳动阶级,或半音译为普罗阶级,其拉丁文本字原是指古罗马最低下层的社会阶级,字源由Proles(子嗣)一字所衍生,意味该阶层的唯一贡献是延续香火并
  • 杰氏椰子猫(P. jerdoni)杰氏椰子猫(Paradoxurus jerdoni),又名褐棕榈狸,是印度西高止山脉特有的麝猫。杰氏椰子猫分布在伯尔尼丘陵、尼尔吉里丘陵及阿奈马莱丘陵、库瓦兰及库格,尤其是在海拔500-1300米
  • 银鱼科银鱼科(学名:Salangidae)通称银鱼,古称脍残鱼,属辐鳍鱼纲胡瓜鱼目。以小型甲壳类为食。银鱼可供鲜食用或晒鱼干。银鱼是一种小型鱼类,身体细长、光滑、半透明,头平扁;口大,两颌和口盖
  • 中国高等教育文献保障系统中国高等教育文献保障系统(China Academic Library & Information System,即CALIS),是中华人民共和国国务院批准的中国高等教育公共服务体系。利用该系统,可有效实现各种信息资源
  • 谐波 (电力)电力系统中的谐波是指电压或是电流的频率是系统基频的倍数(谐波)。谐波一般是因为非线性元件或是负载所产生(例如整流器、萤光灯管或是磁饱和的磁性元件)。电网中的谐波是电力品
  • 小行星12154小行星12154(12154 Callimachus)是一颗绕太阳运转的小行星,为主小行星带小行星。该小行星于1971年3月19日发现。小行星12154的轨道半长轴为451 201 230 km<br> 3.0160510 UA,离
  • 威廉·本顿威廉·本顿(William Benton,1900年4月1日-1973年3月18日)美国康乃迪克州参议员(1949年-1953年),广告商、大英百科全书出版人(1943年-1973年)。威廉·本顿出生于明尼苏达州的明
  • 满陇桂雨满陇桂雨是浙江杭州市的“新西湖十景”之一,位于西湖西南南高峰与白鹤峰之间山谷中的满觉陇村(又名满家弄),以秋季赏桂花著称。 939年(五代后晋天福四年),吴越国统治时期,佛寺圆兴院
  • 卡奥诺萨基列斯足球会卡奥诺萨基列斯(FK Kauno Žalgiris)是立陶宛的一家足球俱乐部,主场位于考那斯。球队参加立陶宛足球超级联赛的赛事。
  • 胡玥胡玥(?-?),湖广襄阳县人,明朝政治人物。弘治十二年(1499年)中式己未科进士。次年授直隶溧水县知县,升给事中。