heaps 和 priority queue堆和优先队列的定义和数据结构表示

堆是一种半排序的树形数据结构,分为最大堆和最小堆,常用于实现优先队列。在堆中,父节点总是大于或小于子节点。堆排序和优先队列是堆的主要应用,插入和删除操作的时间复杂度为O(log n)。通过数组可以方便地表示和操作堆,便于实现优先队列功能。
摘要由CSDN通过智能技术生成
  1. heaps
    在这里插入图片描述
    堆:并非一对杂乱无章的结构, 堆是一种存在特殊关系的树。
    是一种半排序的树, 所有的父节点大于子节点(max heaps) 或 所有的父节点小于子节点(min heaps)。上图为max heaps. 满足二叉树结构的推叫做, binary heaps.
  2. 特点
    在这里插入图片描述
    这种结构有别于BST, 它是一种层与层有特殊关系的数, 如果是max heaps更贴近于家谱图。如上图, 9必须大于所有子孙节点, 因为所有子孙节点是9的后代, 但其子孙却没有固定的关系, 比如, 6 必须满足小于7, 因为是7的孩子, 但不一定必须小于2或者5, 因为不是直系关系。
    有了这种特殊的结构, 使得堆有许多好的算法, 比如堆排序, 优先队列这样最常用的高级算法。
  3. binary heaps 区别于 BST
    在这里插入图片描述
    上图均为堆, 但都不是BST
  4. 插入操作
    4.1 按照中序二叉树的顺序插入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值