二叉堆的数组表示

遵循堆排序属性的完全二叉树称为二叉堆

根据二叉堆的排序方式,它可以分为两种类型:

最小堆是节点的值大于或等于其父节点的值的堆。最小堆的根节点最小。

最大堆是节点的值小于或等于其父节点的值的堆。最大堆的根节点最大。

二叉堆的值通常表示为一个数组。二叉堆的数组表示如下:

根元素的索引为0。

如果i是数组中节点的索引,则与该节点相关的其他节点的索引如下:

左孩子:(2*i)+1

右孩子:(2*i)+2

父节点:(i-1)/2

使用上述数组表示规则,我们可以将堆表示为数组:

二叉堆的数组表示

147891112

现在,我们可以讨论基于排序的堆的类型:

最小堆 – 根节点具有最小值。节点的值大于父节点的值。

示例:

二叉堆的数组表示

数组表示:

14769108

最大堆 – 根节点具有最大值。节点的值小于父节点的值。

示例:

二叉堆的数组表示

数组表示:

11896451

以上就是二叉堆的数组表示的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2583813.html

(0)
上一篇 2025年3月6日 14:39:36
下一篇 2025年2月25日 09:37:34

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 加密字符串

    加密是一种通过使用某些技术或某些步骤来更改数据的技术,使其更改为另一种信息或无法直接从中收集到先前的信息。对于加密,我们必须遵循针对特定加密类型固定的某些步骤。 在这个问题中,我们将得到一个字符串,我们必须按照给定的步骤对其进行加密 &#8…

    2025年3月6日
    200
  • C中的空指针

    C 中的 void 指针是不与任何数据类型关联的指针。它指向存储中的某个数据位置,意味着指向变量的地址。它也称为通用指针。在 C 语言中,malloc() 和 calloc() 函数返回 void * 或通用指针。 它有一些限制 &#821…

    2025年3月6日
    200
  • 盗贼跨越墙壁所需的跳跃次数

    想象一下一个囚犯(或小偷)想要从监狱逃脱。为了做到这一点,他需要越过 N 个长度不同的墙。他每次跳跃可以爬升 X 英尺。但是,由于墙壁很滑,他每次跳跃后会下滑 Y 英尺。因此,我们需要计算穿越所有墙壁所需的跳跃次数。在本文中,我们将探讨不同…

    2025年3月6日
    200
  • 最大的瑞利三角形在一个正方形内?

    在这里,我们将看到最大的鲁洛三角形内接于正方形的面积。正方形的边是“a”。鲁洛三角形的高度为 h。 鲁洛三角形的高度与a相同。所以a=h。所以鲁洛三角形的面积是 – 示例 #include #include using name…

    2025年3月6日
    200
  • 找到在将一个二进制字符串清空(通过移除非空子字符串)后,0的数量最少的玩家

    在本文中,我们将讨论一个有趣的问题,涉及到字符串操作和博弈论领域:“通过删除非空子字符串来清空二进制字符串,找到剩余0最少的玩家”。这个问题探索了使用二进制字符串进行竞技游戏的概念。我们的目标是在游戏结束后找出剩余0最少的玩家。我们将讨论这…

    2025年3月6日
    200
  • 在C++中,将以下内容翻译为中文:寻找长度和宽度之间差异最小的矩形

    给定一个矩形区域作为输入。目标是找到矩形的边,使长度和宽度之间的差异最小。 矩形的面积 = 长度 * 宽度。 示例 输入− 面积 = 100 输出− 差异最小的矩形边: 长度 = 10,宽度 = 10 立即学习“C++免费学习笔记(深入)”…

    2025年3月6日
    200
  • 在C语言中,fork()函数

    在本节中,我们将了解C语言中的fork系统调用。这个fork系统调用用于创建一个新的进程。这个新创建的进程被称为子进程。创建另一个子进程的当前进程被称为父进程。 子进程使用相同的程序计数器、CPU寄存器和父进程使用的相同文件。 fork()…

    2025年3月6日
    200
  • 小于n的立方数自由数

    无立方因子的数是指那些没有立方数作为因子的数。 立方数因子是指一个整数,它是一个立方数并且能够整除该数而没有余数。 例如,8是16的立方数因子,因为8是2的立方数(2*2*2 = 8),并且8除以16的余数为零。 因此,8和16都不是无立方…

    2025年3月6日
    200
  • 七边形数

    a heptagonal number is a number which can be represented as a heptagon. a heptagon is a polygon with 7 sides. a heptagon…

    2025年3月6日 编程技术
    200
  • 如何进行C++代码的代码审查?

    如何进行C++代码的代码审查? 代码审查是软件开发过程中非常重要的一环,它能够帮助开发团队识别并纠正潜在的错误,提高代码质量,减少后续维护和调试的工作量。对于C++这样的强类型静态语言来说,代码审查尤为重要。下面将介绍一些关键步骤和注意事项…

    2025年3月6日
    200

发表回复

登录后才能评论