九度论坛-1009

/**
 * 文件名:Main.java
 *
 * 版本信息:
 * 日期:2013-6-28
 * Copyright Corporation 2013
 * 版权所有
 *
 */
package 题目1009;

import java.util.Scanner;

/**
 *
 * 项目名称:arithmetic
 * 类名称:Main
 * 类描述:
 * 创建人:黄传聪
 * 创建时间:2013-6-28 下午2:27:53
 * 修改人:黄传聪
 * 修改时间:2013-6-28 下午2:27:53
 * 修改备注:
 * @version
 *
 */
public class Main {

	private int data;
	private Main lchild;
	private Main rchild;
	public Main(){}
	public Main(int data,Main lchild,Main rchild){
		this.data = data;
		this.lchild = lchild;
		this.rchild = rchild;
	}
	
	private static String s1 = "";
	private static String tempStr = "";
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Main root = null;
		Scanner scanner = new Scanner(System.in);
		int n ;
		while(scanner.hasNext()){
			n = Integer.parseInt(scanner.nextLine());
			if(n == 0){
				break;
			}
			
			int[] f = new int[11];
			int i ,j;
			String str = scanner.nextLine();
			Main node = null;
			root = new Main(Integer.parseInt(String.valueOf(str.charAt(0))),null,null);
			for(i=1;i<str.length();i++){
				node = new Main(Integer.parseInt(String.valueOf(str.charAt(i))),null,null);
				insertTree(root,node);
			}
			String s = postOrder(root);
			s1 = "";
			for(i=0;i<n;i++){
				String tempStr = scanner.nextLine();
				
				Main tempRoot = new Main(Integer.parseInt(String.valueOf(tempStr.charAt(0))),null,null);
				for(j=1;j<str.length();j++){
					node = new Main(Integer.parseInt(String.valueOf(tempStr.charAt(j))),null,null);
					insertTree(tempRoot,node);
				}
				String tempS = postOrder(tempRoot);
				if(tempS.equals(s)){
					System.out.println("YES");
				}else{
					System.out.println("NO");
				}
				s1 = "";
			}
			
		}

	}
	
//	前序生成二叉排序树
	
	public static void insertTree(Main root, Main node){
		if(node.data<root.data){
			if(root.lchild == null){
				root.lchild = node;
			}else{
				insertTree(root.lchild,node);
			}
		}else if(node.data>root.data){
			if(root.rchild == null){
				root.rchild = node;
			}else{
				insertTree(root.rchild, node);
			}
		}
	}
	
	public static String  postOrder(Main root){
		
		if(root != null){
			postOrder(root.lchild);
			postOrder(root.rchild);
			s1 += root.data;
		}
		return s1;
	}

}

你可能感兴趣的:(九度论坛-1009)