P1305 新二叉树

题目描述

输入一串二叉树,用遍历前序打出。
输入输出格式

输入格式:

第一行为二叉树的节点数n。(
n≤26n \leq 26
n≤26 )
后面n行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用*表示

输出格式:

前序排列的二叉树

输入输出样例
输入样例#1:
6
abc
bdi
cj*
d**
i**
j**
输出样例#1
abdicj
代码:
#include<bits/stdc++.h>
using namespace std;
char a[30][3];
int n;
void dfs(char c)
{
    
    if(c!='*')
    {
        cout<<c;//第一个输入的必定是根节点
      for(int i=1;i<=n;i++)
      {
          if(a[i][0]==c)  //如果是下一个节点的父亲结点,则递归输出左孩子
           {
            dfs(a[i][1]);
            dfs(a[i][2]);//递归右孩子
           }
      }

    }
    return;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i][0]>>a[i][1]>>a[i][2];
    dfs(a[1][0]);
    return 0;
}


猜你喜欢

转载自blog.csdn.net/sunpeishuai/article/details/79871662