摘要:
对于是否是一颗完全二叉树,可以采用队列来判断,采用类似于层序遍历的方法(不同点是其左右孩子为null时,依旧入队)。 首先,来看看一个非完全二叉树的入队以及出队的顺序: 再来看看完全二叉树,其入队以及出队的顺序应该如下: 对比上面两图可以看出,当为一颗完全二叉树的时候,当出队列的一个节点为null, 阅读全文
摘要:
二叉堆的构建,删除节点以及自我调整等基础的操作是实现堆排序的基础(详看上一篇)。 在最大堆中,如果删除了堆顶元素,然后经过自我调整后,第二大的元素就会被交换上来,称为最大堆的新堆顶。(在堆排序中的删除,并不是真正的删除,而是将其与完全二叉树最后的一个元素交换位置)。例如下图分析: 对于上图,黑色节点 阅读全文