@javaブルーブリッジ・カップ・グループBのアルゴリズムの訓練記事(241)27の質問:FBI&バイナリーツリー

キーワード:バイナリツリートラバーサル、再帰、サイクリング

問題の説明

私たちは、「0」の文字列を置くことができ、「1」は三つのカテゴリーからなる:Bと呼ばれるすべての「0」の文字列の文字列、I列と呼ばれる、すべての「1」配列は、「0」と「1」が含まれ、両方が含まれていますFは、文字列の文字列と呼ばれています。
  FBIツリーは二分木であり、それはまた、ノードタイプはF、B及びI三ノードノードノードが含まれます。再帰的に構築ツリーFBI Tを構築することができる「01」の文字列Sの長さ2Nには、次の通り:
  1)ルートノードR、同じ種類およびストリングSのタイプのT;
  2)ストリングSは、IF図1は、中央に分けS文字列の長さに等しい長さS1とS2の左右のサブストリングに分割されているよりも大きい; T1はR配置S2 T2の右サブツリー右サブストリングによって、S1をサブストリング左サブツリー構造Rによって残さ。
  今2Nの長さを示す「01」シリーズは、上記1 FBIツリー構築方法、及び出力が後順トラバーサルシーケンスを構築します。
入力フォーマット
  最初のラインのは、整数N(0 <= N <=である 10)、 長さ2Nの2行目「01」シリーズです。
出力フォーマット
  のみ文字列を含む行、すなわち、後続のFBIツリートラバーサルシーケンスを含みます。
サンプル入力
3。
10001011
サンプル出力
IBFBBBFIBFIIIFFの
データサイズと表記
  40%のデータのために、N <= 2;
  すべてのデータに対して、N <= 10。
  注:
  [1]バイナリ:バイナリツリーノードの有限集合であり、集合は空集合であるか、または、又は根と2つの互いに素バイナリー組成物で構成されています。この2つの互いに素バイナリツリーは、左の部分木と右のサブツリーのルートと呼ばれています。
  先行予約した後、[2]:後順のトラバースは、バイナリツリーの深さ優先トラバーサルのための方法であり、それは再帰的定義である:先行予約は、ルートへの最後のアクセスの右サブツリー後順トラバーサルをサブツリーを残しています。

コードセクション:

この質問は、私は何も間違っている場合、私は私はあなたを理解することのいくつかは、私が見るのを助けるために追加する立場にあるべき、ハハ、白売春婦であると言うことができる、答えを見つけるために、後でインターネット上で、どのように理解していないまだ始まったばかりですハッハッハ、ええ、あなたがああ私を修正感謝~~


public class ALGO027 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		java.util.Scanner in=new java.util.Scanner(System.in);
		int n=in.nextInt();
		String s=in.next();
		post_order(0,s.length()-1,s);
		in.close();
	}
	//后序遍历--->递归思想
	private static void post_order(int l,int r,String s){
		int mid=(l+r)/2;//控制分割的位置:在字符串的正中间分割开
		//先全部分割完,然后把全部结点标记之后再输出。
		if(l!=r){//分割:知道r=l=0才停止分割
			post_order(l,mid,s);//左子树
			post_order(mid+1,r,s);//右子树
		}
		//设置标记判断字符
		int flag1=0,flag2=0;//定义判断的变量
		for(int i=l;i<=r;i++){//标记判断字符(变量)并且根据01字符串(这里的字符串是已经不可再分割的字符串)给控制输出的两个变量flag1、flag2赋上对应的值
			if(s.charAt(i)=='0') flag1=1;
			if(s.charAt(i)=='1') flag2=1;
		}
		//根据判断字符变量来输出对应的字母:B、I、F
		if(flag1==1&&flag2==0) System.out.print("B");//只有0
		if(flag1==0&&flag2==1) System.out.print("I");//只有1
		if(flag1==1&&flag2==1) System.out.print("F");//既有0又有1
	}
}

公開された29元の記事 ウォンの賞賛1 ビュー1089

おすすめ

転載: blog.csdn.net/DAurora/article/details/105169177