总结:优先级队列(堆)

二叉树的顺序存储

1.存储方式

(1)使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。
(2)一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。这种方式的主要用法就是堆的表示。
(3)图解:
在这里插入图片描述

1.概念:

(1)堆逻辑上是一棵完全二叉树。
(2) 堆物理上是保存在数组中。
(3)满足任意结点的值都大于其子树中结点的值,叫做大堆,或者大根堆,或者最大堆;反之,则是小堆,或者小根堆,或者最小堆。
(4)堆的基本作用是,快速找集合中的最值。

2.实现堆的向上调整、向下调整、创建堆

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持优先级队列是一种数据结构,它允许我们在插入元素时指定一个优先级。在取出元素时,优先级高的元素会被首先取出。 实现支持优先级队列可以使用多种数据结构,其中一种常见的方法是使用堆(Heap)数据结构。堆可以以O(logN)的时间复杂度插入和取出元素,并且可以保持元素的优先级排序。使用堆实现支持优先级队列时,每个元素都有一个优先级属性,插入元素时按照优先级建立堆,取出元素时就可以直接从堆顶取出。 具体的实现思路如下: 1. 初始化一个空堆(根据需要可以选择最大堆或最小堆)。 2. 定义一个元素类,包含元素值和优先级属性。 3. 实现插入方法,将新元素插入堆中,并调整堆使其保持堆的性质。 4. 实现取出方法,从堆顶取出优先级最高的元素,并将堆进行调整。 5. 实现其他常见的队列操作方法,比如判空、清空等。 6. 在需要使用支持优先级队列的场景中,根据元素优先级进行插入和取出操作。 通过以上步骤,我们可以轻松实现一个支持优先级队列。使用这个队列,我们可以在处理多个任务时根据任务优先级的不同来调度任务的执行顺序,提高任务的处理效率。 总结起来,支持优先级队列是一种重要的数据结构,通过使用堆等数据结构的实现,我们可以实现高效的插入和取出操作,满足各种场景下的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值