浅析左偏树的性质及其应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析左偏树的性质及其应用相关的知识,希望对你有一定的参考价值。

本文是看了黄源河的论文后才写的

如果本人有哪些地方写得不对的,希望各位大佬改正ORZ

学习C++的大佬应该都会优先队列(原谅我的菜,我连priority_queue都不会拼)

左偏树说到底就是一个升级版的堆

因为左偏树拥有所有堆拥有的功能比如说插入一个节点,取出堆顶和删除堆顶

我们的左偏树的优秀到底体现在哪呢?

左偏树可以合并两个堆!!!

如果我们用普通的做法合并两个堆是需要O(N)的时间

那么如果合并操作非常多

那么堆就不在实用了

先来规定左偏树的一些概念

外节点:一个没有右儿子的节点成为外节点

dist[u]:表示在它的儿子中,离它最近的外节点与它的距离

如果u本身就是一个外节点,那么dist[u]=0

如果u节点不存在(也就是空节点),那么dist[u]=-1

左偏树的性质有哪些呢

性质1:节点的键值小于等于它的左右儿子的键值(这是由堆的性质推导出来的)

 

未完待续

以上是关于浅析左偏树的性质及其应用的主要内容,如果未能解决你的问题,请参考以下文章

左偏树

左偏树

左偏树

堆(左偏树)

5.左偏树整理

左偏树——可以标记合并的堆