是否完全二叉搜索树 【学习进度条6】

L3:是否完全二叉搜索树

题目

是否完全二叉搜索树 【学习进度条6】_第1张图片
是否完全二叉搜索树 【学习进度条6】_第2张图片
是否完全二叉搜索树 【学习进度条6】_第3张图片
在这里插入图片描述
是否完全二叉搜索树 【学习进度条6】_第4张图片
是否完全二叉搜索树 【学习进度条6】_第5张图片
是否完全二叉搜索树 【学习进度条6】_第6张图片
是否完全二叉搜索树 【学习进度条6】_第7张图片
【可粘贴代码】

#include
#include
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;
} 

你可能感兴趣的:(笔记,二叉树)