洛谷-P1305 新二叉樹

題目描述

輸入一串二叉樹,用遍歷前序打出。

輸入格式

第一行爲二叉樹的節點數n。(n \leq 26n≤26)

後面n行,每一個字母爲節點,後兩個字母分別爲其左右兒子。

空節點用*表示

輸出格式

前序排列的二叉樹

輸入輸出樣例

輸入 #1複製

6
abc
bdi
cj*
d**
i**
j**

輸出 #1複製

abdicj

 

#include <bits/stdc++.h>
using namespace std;
int L[28],R[28];
int root;

void preorder(int i){
	if(i!='*'-'a'){//=="*"爲結束條件
		cout<<char(i+'a');
		preorder(L[i]);
		preorder(R[i]);
	}
}

int main(){
	int n;
	string s;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>s;
		if(i==0){
			root=s[0]-'a';	
		}
		L[s[0]-'a']=s[1]-'a';
		R[s[0]-'a']=s[2]-'a';		
	}
	preorder(root);
	return 0;
}
 

 

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