考研408真题-22-41 二叉树dfs
作者:
nxdxml
,
2022-12-07 10:21:53
,
所有人可见
,
阅读 297
#include<bits/stdc++.h>
using namespace std;
const int MAX_SIZE = 105;
typedef struct {
int SqBiTNode[MAX_SIZE];
int ElemNum;
} SqBiTree;
bool test(SqBiTree T, int idx, int &pre_max){
int n = T.ElemNum;
if(idx >= n || T.SqBiTNode[idx] == -1) return 1;
if(!test(T, idx * 2 + 1, pre_max)) return 0;
int x = T.SqBiTNode[idx];
if(x <= pre_max) return 0;
pre_max = x;
if(!test(T, idx * 2 + 2, pre_max)) return 0;
return 1;
}
int main(){
SqBiTree T;
int n;
cin >> n;
T.ElemNum = n;
int x;
for(int i = 0; i < n; i ++ ){
cin >> x;
T.SqBiTNode[i] = x;
}
int pre_max = -99999999;
cout << test(T, 0, pre_max) << endl;
return 0;
}