本文为大家介绍怎样判断一个序列是不是堆(堆序列的排列方式),下面和小编一起看看详细内容吧。
把这个序列想象成一个数组型的二叉树,二叉树上端的父节点个数大于或小于下端左右子节点的个数,那么这个序列可以是视为堆。
当且仅当满足上述关系时,n 个元素的序列{k1,k2,ki,kn} 称为堆。
堆是计算机科学中一种特殊类型数据结构的总称。我们通常把堆看成是一棵树的数组对象。
堆分为最大堆和最小堆。两者的区别在于节点的排序方式。在最大堆中,父节点的值大于每个子节点的值。在最小堆中,父节点的值小于每个子节点的值,这是堆的属性,这个属性对堆中的每个节点都成立。根据这个性质,我们可以理解,在最大堆中,最大值总是放在二叉树的根节点,而对于最小堆,根节点的值就是二叉树中的最小值。堆的特性特别有用,因此堆经常被用作优先级队列,因为它可以快速访问“最重要”的元素。
注意:最大或最小的元素放在堆的根节点,但其他节点的排序未知。唯一可以保证的是最小的元素是叶子节点,但不确定是哪一个。
好了,怎样判断一个序列是不是堆(堆序列的排列方式)的介绍到这里就结束了,想知道更多相关资料可以收藏我们的网站。