现在的位置: 首页 > 综合 > 正文

1399 基本概念的判断

2012年08月25日 ⁄ 综合 ⁄ 共 588字 ⁄ 字号 评论关闭
 
描述

判断一个给定的二叉树是否为满二叉树。(3)

注意只有1个节点的情况。

不考虑空树情况

输入

输入有n+1行。第一行为测试数据的组数n, 一下的n行为n棵二叉树的广义表表示法所表示的二叉树。树中的元素为char

输出

输入一共有n行,分别对应输入的n棵二叉树。如果是满二叉树,输出Yes. 如果不是,输出No.

 

 

无须建树,通过括号判断即可

#include <stdio.h>
#include <string.h>
#include <math.h>
main()
{
	int number,te;
	int a[3000];
	char b[3000];
	int i;
	int count;
	scanf("%d",&number);
	for(te=1;te<=number;te++)
	{
		scanf("%s",&b);
		count=0;
		memset(a,0,sizeof(a));
		for(i=0;b[i]!='\0';i++)
		{
			if(b[i]!='('&&b[i]!=','&&b[i]!=')')
				a[count]++;
			if(b[i]=='(')
				count++;
			if(b[i]==')')
				count--;
		}
		
		for(i=0;a[i]!=0;i++)
		{
			if(a[i]!=pow(2,i))
			{
			
				break;
			}
			else
				continue;
			
		
			
		}
		if(a[i]==0)
			printf("Yes.\n");
		else
			printf("No.\n");
		
	}
}

 

抱歉!评论已关闭.