L3:是否完全二叉搜索树
题目
【可粘贴代码】
#include<iostream>
#include<cstring>
using namespace std;
const int N=100;
int main(){
int n;
scanf("%d",&n);
int a[N];
memset(a,-1,sizeof(a));//-1表示空
for(int i=1;i<=n;i++){
int num;
scanf("%d",&num);
int j=1;
while(true){
if(a[j]==-1){
a[j]=num;
break;
}else if(num>a[j]) j=2*j;
else if(num<a[j]) j=2*j+1;
}
}
int flag=0;
int s=0;
int cnt=0;
for(int i=1;cnt<n;i++){
if(a[i]==-1&&cnt<n){
flag=1;
}else if(a[i]!=-1){
cnt++;
if(s!=0) cout<<" ";
else s=1;
cout<<a[i];
}
}
cout<<endl;
if(flag==0) cout<<"YES";
else cout<<"NO";
return 0;
}