堆序列怎么判断

编辑:全民百科 时间:2024-02-19 17:37:05

要将这个序列看成数组型的二叉树,二叉树上端父节点的数字要比下端左右子节点的数字大或者小,那么这个序列就可以看作是一个堆。

n个元素的序列{k1,k2,ki,…,kn}当且仅当满足上述关系时,称之为堆。

堆是计算机科学中一类特殊的数据结构的统称,我们通常将堆看成一棵树的数组对象。

堆分为最大堆和最小堆,两者的差别在于节点的排序方式不同。在最大堆中,父节点的数值要比每一个子节点的数值都要大。在最小堆中,父节点的数值要比每一个子节点的数值都要小,这就是堆的属性,并且这个属性对堆中的每一个节点都成立。根据这一个属性,我们就可以了解到,在最大堆中总是将其中的最大值放在二叉树的根节点,而对于最小堆,根节点的数值是二叉树中的最小值。堆的属性特别的有用,所以堆常常被当做优先队列使用,因为可以快速的访问到“最重要”的元素。

注意:堆的根节点中放置的是最大或者最小元素,但是其它节点的排序是未知的,唯一能够保证的是最小的元素是一个叶节点,但是不确定是哪一个。