数据结构与算法===优先队列

文章目录

  • 前言
  • 一、优先队列
  • 二、应用场景
  • 三、代码实现
  • 总结


前言

之前写过很多数据结构与算法相关的了,今天看一个新的数据结构,优先队列。优先队列类似队列,却又优先于队列,是堆实现的。接下来详细看看。


一、优先队列

优先队列一种特殊的队列。在优先队列中,元素被赋予优先级,当访问队列元素时,具有最高优先级的元素最先删除;
普通队列就是先进先出的。

二、应用场景

这个太多了,最经典的就是top k元素,将所有元素放进一个优先队列中,然后一个一个出来,到第K个,就是第K大元素了。接下来看看stl怎么实现的。


三、代码实现

在这里插入图片描述
上图是stl的实现。看红色框中的代码,主要有入队,出队操作;
在这里插入图片描述
这个是push_heap,入队操作;接下来看看出队pop_heap,如下:
在这里插入图片描述
看下上图,七个步骤,出队操作。最后又执行了一个__push_heap。这个写的挺简洁的。通用的模板,很多地方都在用。思考程度非一般人可比。

总结

优先队列,一个高于普通队列的数据结构,按照优先级排序,每次放进去一个数据,都要看下优先级,这就是adjust_heap的作用。入队,按照优先级调整;出队,也要按照优先级调整;这个代码的实现是基于它的特性确定的。很简洁了。好好学习学习。如果实在有疑惑,可以去学习网站看看,有可能就能解决了呢!嘿嘿。OK,翻篇。

相关推荐

  1. 数据结构算法-队列

    2024-05-16 13:00:08       37 阅读
  2. 算法数据结构 循环队列 (C++)

    2024-05-16 13:00:08       15 阅读
  3. 算法数据结构队列 (C++)

    2024-05-16 13:00:08       15 阅读
  4. 数据结构算法——栈和队列

    2024-05-16 13:00:08       12 阅读
  5. Python数据结构算法——数据结构(栈、队列)

    2024-05-16 13:00:08       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-16 13:00:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-16 13:00:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-16 13:00:08       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-16 13:00:08       20 阅读

热门阅读

  1. 循环、使用dict和set

    2024-05-16 13:00:08       11 阅读
  2. 使用 Gradle 自定义任务生成初始化 SQL 文件

    2024-05-16 13:00:08       11 阅读
  3. 数学建模(科普)

    2024-05-16 13:00:08       12 阅读
  4. IT行业的现状与未来:技术驱动下的新世界

    2024-05-16 13:00:08       12 阅读
  5. js 数组filter使用

    2024-05-16 13:00:08       13 阅读
  6. RIP、OSPF、BGP等协议及华为路由器配置总结

    2024-05-16 13:00:08       13 阅读
  7. 40-2 了解与安装堡垒机

    2024-05-16 13:00:08       8 阅读
  8. Leetcode 404:左叶子之和

    2024-05-16 13:00:08       11 阅读
  9. 力扣:131. 分割回文串

    2024-05-16 13:00:08       10 阅读
  10. 力扣 72. 编辑距离 python AC

    2024-05-16 13:00:08       10 阅读
  11. 课时126:awk实践_进阶知识_内置函数1

    2024-05-16 13:00:08       13 阅读