洛谷-P1305 新二叉树

洛谷-P1305 新二叉树

原题链接:https://www.luogu.com.cn/problem/P1305


题目描述

输入一串二叉树,输出其前序遍历。

输入格式

第一行为二叉树的节点数 n。((1 leq n leq 26))

后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。

空节点用 * 表示

输出格式

二叉树的前序遍历。

输入输出样例

输入 #1

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

输出 #1

abdicj

C++代码

#include <iostream>
using namespace std;

int n;
char tree[30][3];

void dfs(int k) {
    cout<<tree[k][0];
    int i;
    if(tree[k][1]!='*') {
        for(i=0;tree[k][1]!=tree[i][0]&&i<n;++i);
        dfs(i);
    }
    if(tree[k][2]!='*') {
        for(i=0;tree[k][2]!=tree[i][0]&&i<n;++i);
        dfs(i);
    }
}

int main() {
    cin>>n;
    for(int i=0;i<n;++i)
        cin>>tree[i][0]>>tree[i][1]>>tree[i][2];
    dfs(0);
    cout<<endl;
    return 0;
}
原文地址:https://www.cnblogs.com/yuzec/p/13259072.html