c_cpp 数组是否代表堆
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 数组是否代表堆相关的知识,希望对你有一定的参考价值。
//https://www.geeksforgeeks.org/how-to-check-if-a-given-array-represents-a-binary-heap/
#include <iostream>
using namespace std;
bool isHeap (int a[],int i, int n) {
int l= 2*i+1, r= 2*i+2;
if (l<n && r<n) {
if (a[i] > a[l] && a[i] > a[r] && isHeap(a, l, n) && isHeap (a, r,n))
return 1;
else
return 0;
}
else if (l<n) {
if (a[i] > a[l] && isHeap(a, l, n))
return 1 ;
else
return 0;
}
return 1;
}
int main() {
int t;
cin>>t;
while (t-->0) {
int n;
cin>>n;
int a[n];
for (int i=0;i<n;i++)
cin>> a[i];
cout<< isHeap(a,0, n) << "\n";
}
}
以上是关于c_cpp 数组是否代表堆的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 检查给定数组是否可以表示BST的Preorder Traversal
实现堆结构
算法数组与矩阵问题——找到无序数组中最小的k个数
c_cpp 堆
c_cpp 堆
c_cpp 堆。空手。