diff --git a/docs/cs-basics/data-structure/堆.md b/docs/cs-basics/data-structure/堆.md index cd186132..9fe222e0 100644 --- a/docs/cs-basics/data-structure/堆.md +++ b/docs/cs-basics/data-structure/堆.md @@ -13,7 +13,7 @@ - 很多博客说堆是完全二叉树,其实并非如此,**堆不一定是完全二叉树**,只是为了方便存储和索引,我们通常用完全二叉树的形式来表示堆,事实上,广为人知的斐波那契堆和二项堆就不是完全二叉树,它们甚至都不是二叉树。 - (**二叉**)堆是一个数组,它可以被看成是一个 **近似的完全二叉树**。——《算法导论》第三版 -大家可以尝试判断下面给出的图是否是二叉树? +大家可以尝试判断下面给出的图是否是堆? ![](pictures/堆/堆1.png) @@ -40,7 +40,7 @@ ## 堆的存储 -之前介绍树的时候说过,由于完全二叉树的优秀性质,利用数组存储二叉树即节省空间,又方便索引(若根结点的序号为1,那么对于树中任意节点i,其左子节点序号为 `2\*i`,右子节点序号为 `2\*i+1`)。 +之前介绍树的时候说过,由于完全二叉树的优秀性质,利用数组存储二叉树即节省空间,又方便索引(若根结点的序号为1,那么对于树中任意节点i,其左子节点序号为 `2*i`,右子节点序号为 `2*i+1`)。 为了方便存储和索引,(二叉)堆可以用完全二叉树的形式进行存储。存储的方式如下图所示: @@ -189,4 +189,4 @@ ![堆排序6](pictures/堆/堆排序6.png) -堆排序完成! \ No newline at end of file +堆排序完成!