洛谷 P1305 新二叉树
题目描述
输入一串完全二叉树,用遍历前序打出。
输入输出格式
输入格式:
第一行为二叉树的节点数n。
后面n行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用*表示
输出格式:
前序排列的完全二叉树
输入输出样例
输入样例#1:
6 abc bdi cj* d** i** j**
输出样例#1:
abdicj
/*递归搜索解决二叉树问题*/ #include<iostream> #include<string> using namespace std; int n; string a[26]; void sou(string b) { cout<<b[0]; for (int i=1;i<b.size();i++) //从左到右找儿子 { if (b[i]=='*') continue; //如果儿子是'*' 就不往下找了 for (int j=0;j<n;j++) if(a[j][0]==b[i]) sou(a[j]); //不是 找以这个字符开头的字符串 递归 } } int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i]; sou(a[0]); return 0; }