返回介绍

一、概念

发布于 2025-02-17 12:55:32 字数 630 浏览 0 评论 0 收藏 0

1. 堆 heap

堆的本质是一种数组对象,数组下标从 1 开始

堆可以被视作一棵完全二叉树,二叉树的层次遍历结果与数组元素的顺序对应,树根为 A[1]。

对于数组中第 i 个元素,其对应在二叉树中的父母孩子结点位置的计算如下:

PARENT(i)
  return i/2
LEFT(i)
  return 2i
RIGHT(i)
  return 2i+1

2. 最大/小堆(max-heap/min-heap)

从二叉树的角度看,对于所有非 root 结点,满足 node->parent ≥ node / node->parent ≤ node

从数组的角度看,对于所有下标大于 1 的元素,其下标为 i,则满足 A[PARENT( i)] ≥ A[i] / A[PARENT( i)] ≤ A[i]

3. 高度 height

结点的高度:从结点到叶子所经过的边的数量,叶子结点的高度为 0

二叉树的高度:树中高度最高的结点的高度,只有一个结点的树高度为 0

堆的高度:把堆看所作二叉树时的高度

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文