浅析左偏树的性质及其应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析左偏树的性质及其应用相关的知识,希望对你有一定的参考价值。
本文是看了黄源河的论文后才写的
如果本人有哪些地方写得不对的,希望各位大佬改正ORZ
学习C++的大佬应该都会优先队列(原谅我的菜,我连priority_queue都不会拼)
左偏树说到底就是一个升级版的堆
因为左偏树拥有所有堆拥有的功能比如说插入一个节点,取出堆顶和删除堆顶
我们的左偏树的优秀到底体现在哪呢?
左偏树可以合并两个堆!!!
如果我们用普通的做法合并两个堆是需要O(N)的时间
那么如果合并操作非常多
那么堆就不在实用了
先来规定左偏树的一些概念
外节点:一个没有右儿子的节点成为外节点
dist[u]:表示在它的儿子中,离它最近的外节点与它的距离
如果u本身就是一个外节点,那么dist[u]=0
如果u节点不存在(也就是空节点),那么dist[u]=-1
左偏树的性质有哪些呢
性质1:节点的键值小于等于它的左右儿子的键值(这是由堆的性质推导出来的)
未完待续
以上是关于浅析左偏树的性质及其应用的主要内容,如果未能解决你的问题,请参考以下文章