2026/1/12 9:48:25
网站建设
项目流程
做废钢推广网站,腾讯做的电子商务网站,网页版本传奇,成都双语网站开发一.优先级队列的存储优先级队列存储在一堆数组中#xff0c;分为大堆和小堆#xff0c;把二叉树按层序遍历得出的结果存储到优先级队列二.堆的分类堆是一颗完全二叉树#xff0c;堆分为大根堆和小根堆#xff0c;大根堆根结点比左右孩子结点都大#xff0c;小根堆相反三.性…一.优先级队列的存储优先级队列存储在一堆数组中分为大堆和小堆把二叉树按层序遍历得出的结果存储到优先级队列二.堆的分类堆是一颗完全二叉树堆分为大根堆和小根堆大根堆根结点比左右孩子结点都大小根堆相反三.性质设i是数组下标1.i 0是根结点2.结点的双亲结点是i - 1 / 23.2 * i 1是左孩子结点2 * i 2是右孩子结点四.代码实现1.创建此时默认建立的是小根堆那么我们如何建立大根堆呢我们需要重写比较器但是这种方法不方便更改那么我们可以用下面的方法我们可以构建一个比较器生成大根堆它的好处是如果需要生成小根堆我们可以重新构建一个比较器将里面的参数换成这个比较器就可以了2.功能五.关于PriorityQueue使用时的注意事项1.PriorityQueue中放置的元素必须要能够⽐较⼤⼩不能插⼊⽆法⽐较⼤⼩的对象否则会抛出 ClassCastException异常2. 不能插⼊null对象否则会抛出NullPointerException3. 没有容量限制可以插⼊任意多个元素其内部可以⾃动扩容4. 插⼊和删除元素的时间复杂度为5. PriorityQueue底层使⽤了堆数据结构6. PriorityQueue默认情况下是⼩堆---即每次获取到的元素都是最⼩的元素7.当调用grow扩容时如果64,1.5倍扩容642倍扩容