程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [ALGO-20] 求先序排列

[ALGO-20] 求先序排列

編輯:C++入門知識

算法訓練 求先序排列 時間限制: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));
		}
	}
}



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved