STL学习之heap & priority queue
来源:互联网 发布:嫁给不喜欢的人 知乎 编辑:程序博客网 时间:2024/05/21 10:38
heap,又称堆,在数据结构中,我们接触过最大堆max-heap,最小堆min-heap,这也都是heap,优先队列(priority queue)实际上也是heap来实现的。
Binary Heap是一种complete binary tree(完全二叉树),除了最底层叶子节点外,其他点都是满的,最底层叶子节点之间也不能有间隙,如下图就是一棵完全二叉树
将一棵完全二叉树映射成一个数组:
1.数组元素0作为一个标记位,不存实际的任何元素
2.对于处于数组下标 i 的元素,其左孩子(如果有的话),下标为2i;右孩子下标为2i + 1,父节点下标 [i/2]
所以用array就可以映射一个heap,因vector可动态扩展,所以用vector做底层存储会更合适一些。max-heap的最大值重总是在根基点,array的首元素;min-heap也类似。每次对heap的插入或pop都要调用一些算法(详见数据结构),保证操作之后,heap依然保持其特性。heap没有遍历功能,也不支持迭代器。
优先队列(priority queue)拥有权值的概念,它首先是一个queue,就需要满足底端入,顶端出的特性,但允许特定优先权的元素先出队列。
多数情况下优先队列是max-heap实现的,priority queue可以归为container adaptor。
0 0
- STL学习之heap & priority queue
- STL之heap与优先级队列Priority Queue详解
- 标准模板库(STL)学习探究之Priority Queue容器
- 标准模板库(STL)学习探究之Priority Queue容器
- Heap & Priority Queue
- Python heap - priority queue
- Heap & Priority Queue
- heap-priority queue
- Heap 和 priority queue
- STL之优先队列priority queue
- stl priority queue
- STL学习记录(十六):Queue、Priority Queue
- Chapter 4: 序列式容器之 heap and priority queue
- STL-优先队列(priority queue)
- STL笔记:heap and priority sort
- C++容器之Priority queue
- HDOJ-1509(stl priority queue)
- [STL]Priority Queue (eden)优先级队列
- cf RCC 2014 Warmup (D题 关于搜索和dp的选择的理解)
- LZW压缩(解压缩)算法详解及源码
- HIT CS科班对计算机专业knowledge的compilation
- php模块memcache和memcached区别分析
- Android如何接收外部broadcast
- STL学习之heap & priority queue
- Python 目录操作
- Linux2.6内核驱动与2.4的区别 .
- Linux的SYN FLOOD
- 淘宝seo关键词优化推广技巧
- 黑马程序员 Java银行业务调度系统
- hibernate学习笔记十二(组件映射)
- int a[10][10]代码
- matlab中的矩阵用法