判断一组序列数据是否是堆:
把序列看成数组型的二叉树,如果根节点是i,左子树是2*i,右子树是2*i+1
最大堆:所有父节点都比左子树、右子树大最小堆:所有父节点都比左子树、右子树小如果这组序列式符合最大堆或最小堆,则是堆,否则不是EG:
判断一下序列是否为堆A(10,50,80,30,60,20,15,18)B(10,18,15,20,50,80,30,60)C(10,15,18,50,80,30,60,20)D(10,30,60,20,15,18,50,80)将ABCD看成二叉树为:本文共 307 字,大约阅读时间需要 1 分钟。
判断一组序列数据是否是堆:
把序列看成数组型的二叉树,如果根节点是i,左子树是2*i,右子树是2*i+1
最大堆:所有父节点都比左子树、右子树大最小堆:所有父节点都比左子树、右子树小如果这组序列式符合最大堆或最小堆,则是堆,否则不是EG:
判断一下序列是否为堆A(10,50,80,30,60,20,15,18)B(10,18,15,20,50,80,30,60)C(10,15,18,50,80,30,60,20)D(10,30,60,20,15,18,50,80)将ABCD看成二叉树为:转载于:https://www.cnblogs.com/Mr-Wenyan/p/8675921.html