判断一个数据序列是否构成一个小根堆

来源:互联网 发布:软件平台下载 编辑:程序博客网 时间:2024/06/11 21:42

判断一个数据序列是否构成一个小根堆

实现代码:
#include <stdio.h>//判断一个数据序列是否构成一个小根堆 bool IsMinHeap(int A[],int len){//将二叉树结点序列看成一个循序表 int i;if(len%2==0){//结点个数为偶数个时的判断 if(A[len/2]>A[len])return false;for(i=len/2-1;i>=1;i--){if(A[i]>A[2*i]||A[i]>A[2*i+1])return false;}}else if(len%2==1){//结点个数为奇数个时的判断for(i=len/2-1;i>=1;i--){if(A[i]>A[2*i]||A[i]>A[2*i+1])return false;}}else{return true;}} int main(int argc, char *argv[]){int a[8]={0,3,6,7,8,9,10,11};//为了方便从数组下标为1的结点开始比较 printf("%d\n",IsMinHeap(a,7));return 0;}
输出结果:
1请按任意键继续. . .



阅读全文
0 0
原创粉丝点击