设计素材免费下载网站有哪些,上海做ui网站最好的公司,科技软件下载,公众号怎么创建文章目录 前言一、优先队列二、应用场景三、代码实现总结 前言
之前写过很多数据结构与算法相关的了#xff0c;今天看一个新的数据结构#xff0c;优先队列。优先队列类似队列#xff0c;却又优先于队列#xff0c;是堆实现的。接下来详细看看。 一、优先队列
优先队列一… 文章目录 前言一、优先队列二、应用场景三、代码实现总结 前言
之前写过很多数据结构与算法相关的了今天看一个新的数据结构优先队列。优先队列类似队列却又优先于队列是堆实现的。接下来详细看看。 一、优先队列
优先队列一种特殊的队列。在优先队列中元素被赋予优先级当访问队列元素时具有最高优先级的元素最先删除 普通队列就是先进先出的。
二、应用场景
这个太多了最经典的就是top k元素将所有元素放进一个优先队列中然后一个一个出来到第K个就是第K大元素了。接下来看看stl怎么实现的。 三、代码实现 上图是stl的实现。看红色框中的代码主要有入队出队操作; 这个是push_heap入队操作接下来看看出队pop_heap如下 看下上图七个步骤出队操作。最后又执行了一个__push_heap。这个写的挺简洁的。通用的模板很多地方都在用。思考程度非一般人可比。
总结
优先队列一个高于普通队列的数据结构按照优先级排序每次放进去一个数据都要看下优先级这就是adjust_heap的作用。入队按照优先级调整出队也要按照优先级调整这个代码的实现是基于它的特性确定的。很简洁了。好好学习学习。如果实在有疑惑可以去学习网站看看有可能就能解决了呢嘿嘿。OK翻篇。