码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-09-02 22:29:40      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:删除   bsp   优先   功能   升级版   优先队列   ++   表示   升级   

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

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

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

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

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

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

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

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

那么如果合并操作非常多

那么堆就不在实用了

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

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

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

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

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

左偏树的性质有哪些呢

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

 

未完待续

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

标签:删除   bsp   优先   功能   升级版   优先队列   ++   表示   升级   

原文地址:http://www.cnblogs.com/TUncleWangT/p/7468026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!