二叉堆的实现(最大堆)

1.二叉堆的介绍

二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。
最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。示意图如下:

二叉堆一般都通过"数组"来实现。数组实现的二叉堆,父节点和子节点的位置存在一定的关系。

  1. 索引为i的左孩子的索引是 (2*i+1);
  2. 索引为i的左孩子的索引是 (2*i+2);
  3. 索引为i的父结点的索引是 floor((i-1)/2);

2.二叉堆的添加

假设在最大堆[90,80,70,60,40,30,20,10,50]种添加85,需要执行的步骤如下:

 https://blog.csdn.net/king3wade/article/details/91659703

原文地址:https://www.cnblogs.com/GumpYan/p/12698255.html