堆和二叉树的区别
以小根堆为例,堆的特点是双亲结点的关键字必然小于等于孩子结点的关键字,而两个孩子结点的关键字没有次序规定,
而二叉排序数中,每个双亲结点的关键字均大于左子树结点的关键字,均小于右子树j结点的关键字,也就是说,每个双亲结点的左右孩子的关键字有次序关系,
这样,当对两种树执行中序遍历后,二叉树会得到一个有序的序列,而堆不一定。
堆
堆是什么?堆是一种特殊的完全二叉树,只不过父亲与儿子节点间有关系。也就是首先要满足完全二叉树的定义,只有右下角可能有缺。
所有父结点都比子结点要小的完全二叉树我们称为最小堆(Java中的优先级队列PriorityQueue默认最小堆)。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。
这里与二叉搜索树的区别是搜索树中根为中间值,左小右大!

浙公网安备 33010602011771号