[ALGO-20] 求先序排列

算法訓練 求先序排列  
時間限制:1.0s   內存限制:256.0MB
問題描述
  給出一棵二叉樹的中序與後序排列。求出它的先序排列。(約定樹結點用不同的大寫字母表示,長度<=8)。
輸入格式
  兩行,每行一個字符串,分別表示中序和後序排列
輸出格式
  一個字符串,表示所求先序排列
樣例輸入
BADC
BDCA
樣例輸出
ABCD
分析:二叉樹中簡單的知道“中序”和“後序”求“先序”的題,遞歸求解

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		while (scanner.hasNext()) {
			String str1 = scanner.nextLine();
			String str2 = scanner.nextLine();

			showResult(str1, str2);
			System.out.println();
		}
	}

	private static void showResult(String str1, String str2) {
		char chl = str2.charAt(str2.length() - 1);
		System.out.print(chl);

		int index = str1.indexOf(chl);

		if (index > 0) {
			showResult(str1.substring(0, index), str2.substring(0, index));
		}

		if (index < str1.length() - 1) {
			showResult(str1.substring(index + 1), str2.substring(index, str2.length() - 1));
		}
	}
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章