怎么判断一个序列是不是堆,求具体判断方法
问题描述:
怎么判断一个序列是不是堆,求具体判断方法
如(100.86,48,73,35,39,42,57,66,21)
(12,70,33,65,24,56,48,92,86,33)
答
把这个序列看成数组型的二叉树,如果根结点是i,左子树是2*i,右子树是2*i+1,每个根结点都比左子树和右子树大,就是大根堆,或者根结点比左子树和右子树都小,那就是小根堆.