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

1404 二叉排序树中查找

2012年01月28日 ⁄ 综合 ⁄ 共 739字 ⁄ 字号 评论关闭
 
描述

在给定的二叉排序树中查找指定的元素。不考虑空树情况。

输入

输入为n+2行。第一行为测试数据的组数n,第二行为一棵用广义表表示的二叉排序树,树中元素为int。以下n行为n组测试数据,数据为int

输出

输出为n行,分别对应n组测试数据。如果在二叉排序树中存在此数据,输出Yes. 否则输出No.

样例输入
2
7(5,8)
1
5
样例输出
No.
Yes.
模拟题,用数组实现即可
#include <stdio.h>
#include <string.h>
char s[1000];
main()
{
	int number;
	int length,i,j;
	int p;
	int a[1000];
	int up;
	int temp;
	scanf("%d",&number);
	getchar();

		up=0;
		
		gets(s);
		length=strlen(s);
		i=0;
		p=0;
		for(i=0;i<length;i++)
		{
			
			if(s[i]!=' '&&s[i]!='('&&s[i]!=','&&s[i]!=')')
			{
				
				p=0;		
				while(s[i] >= '0' && s[i] <= '9'&&i<length)
				{
					p = p * 10 + s[i] - '0';
					i++;
				}
				a[up++]=p;
			}
			else
				continue;
		}
		
		for(i=0;i<up;i++)
			for(j=i+1;j<up;j++)
			{
				if(a[i]<a[j])
				{ temp=a[i];
				a[i]=a[j];
				a[j]=temp;
				
				}  
				
			}
			while(number--)
			{p=0;
                  scanf("%d",&temp);
				  for(i=0;i<up;i++)
				  {
					  if(a[i]==temp)
					  {
						  p=1;
						  break;
					  }
					  else
						  continue;
				  }
				  if(p==1)
					  printf("Yes.\n");
				  else
					  printf("No.\n");
			
		
			}
			
			
			
			
			
			
			
	
}

【上篇】
【下篇】

抱歉!评论已关闭.