建立与遍历二叉树

 以字符串的形式定义一棵二叉树的先序序列,若字符是‘#’, 表示该二叉树是空树,否则该字符是相应结点的数据元素。读入相应先序序列,建立二叉链式存储结构的二叉树,然后中序遍历该二叉树并输出结点数据。

输入样例:

在这里给出一组输入。例如:

ABC##DE#G##F###

输出样例:

在这里给出相应的输出。例如:

CBEGDFA

#include "bits/stdc++.h"

using namespace std;

struct Tree{
    char val;
    Tree* lchild;
    Tree* rchild;
};
Tree* build(){
    char c;
    cin >> c;
    if(c=='#') return NULL;
    Tree* root = new Tree();
    root->val = c;
    root->lchild = build();
    root->rchild = build();
    return root;
}
void dfs(Tree* root){
    if(root == NULL) return;
    dfs(root->lchild);
    cout << root->val ;
    dfs(root->rchild);
}
int main()
{
    Tree* root = build();
    dfs(root);
    return 0;
}

你可能感兴趣的:(pta,数据结构)