标签:struct 优先 https swap 有序 bsp 论文 它的 实现
概要:左偏树是具有左偏性质的堆有序二叉树,它相比于优先队列,能够实现合并堆的功能。
先仪式型orzorzozr国家集训队论文https://wenku.baidu.com/view/515f76e90975f46527d3e1d5.html
左偏树的节点定义:
1 struct node { 2 int lc, rc, val, dis; 3 } LTree[maxn];
左偏树的几个基本性质如下:
4.一棵N个节点的左偏树的距离最多为[log(N+1)]-1
左偏树的基本操作
函数返回的是合并后的树的根节点
首先特判是否存在空树
然后注意到左偏树我们需要保证根节点键值不大于两个子节点的键值,此处我们需要特判A、B的键值,决定swap函数的调用与否(维护性质1)
接着判断A的左右子树的距离,决定是否调用swap(维护性质2)
最后根据A右子树的距离生成A的距离(维护性质3)
2.插入节点
将B节点视为一棵左偏树,合并A、B即可
3.删除最小(大)节点
等同于合并根节点的左右子树
附题:http://acm.hdu.edu.cn/showproblem.php?pid=1512
先到这里QAQ
标签:struct 优先 https swap 有序 bsp 论文 它的 实现
原文地址:http://www.cnblogs.com/xFANx/p/6852133.html