先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数

简介: 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数

对于给定的二叉树,输出其先序序列、中序序列、后序序列并输出叶子结点数。

3279ed024610f3a313a05000469d6ef9.png


输入格式:

二叉树的先序遍历序列。

提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。


输出格式:

若是非空二叉树,则输出四行内容 第一行是二叉树的先序遍历序列; 第二行是二叉树的中序遍历序列; 第三行是二叉树的后序遍历序列; 第四行是叶子结点数;

若是空二叉树 只需输出叶子数0


输入样例1:

FCA##DB###EHM###G##

结尾无空行


输出样例1:

1. FCADBEHMG
2. ACBDFMHEG
3. ABDCMHGEF
4. 4

结尾无空行


输入样例2:

#

结尾无空行


输出样例2:

0


#include<bits/stdc++.h>
using namespace std;
typedef struct node *tree;
struct node{
    tree left,right;
    char data;
};
int k;
tree build()
{
    char ch;
    cin>>ch;
    tree t=(tree)new(tree);
    if(ch=='#') t=NULL;
    else
    {
        t->data=ch;
        t->left=build();
        t->right=build();
        if(t->left==NULL&&t->right==NULL) k++;
    }
    return t;
}
void xian(tree t)
{
    if(t)
    {
        cout<<t->data;
        xian(t->left);
        xian(t->right);
    }
}
void zhong(tree t)
{
    if(t)
    {
        zhong(t->left);
        cout<<t->data;
        zhong(t->right);
    }
}
void hou(tree t)
{
    if(t)
    {
        hou(t->left);
        hou(t->right);
        cout<<t->data;
    }
}
int main()
{
    tree t=build();
    if(t)
    {
        xian(t);
        cout<<endl;
        zhong(t);
        cout<<endl;
        hou(t);
        cout<<endl;
    }
    cout<<k;
    return 0;
}




目录
相关文章
|
3天前
|
C++ 索引 Python
leetcode-105:从前序与中序遍历序列构造二叉树
leetcode-105:从前序与中序遍历序列构造二叉树
33 0
|
3天前
|
算法
二叉树的结点个数、叶子结点个数的代码实现<分治算法>
二叉树的结点个数、叶子结点个数的代码实现<分治算法>
|
5月前
|
C++ 索引
从前序与中序遍历序列构造二叉树(C++实现)
从前序与中序遍历序列构造二叉树(C++实现)
45 1
|
5月前
|
C++ 索引
从中序与后序遍历序列构造二叉树(C++实现)
从中序与后序遍历序列构造二叉树(C++实现)
39 1
leetcode 106 从中序和后续遍历序列构造二叉树
leetcode 106 从中序和后续遍历序列构造二叉树
68 0
leetcode 106 从中序和后续遍历序列构造二叉树
代码随想录刷题|LeetCode 513. 找树左下角的值 112. 路径总和 113.路径总和|| 106. 从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
代码随想录刷题|LeetCode 513. 找树左下角的值 112. 路径总和 113.路径总和|| 106. 从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
代码随想录刷题|LeetCode 513. 找树左下角的值 112. 路径总和 113.路径总和|| 106. 从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
|
算法 前端开发 程序员
二叉树的后序遍历序列
二叉树的后序遍历序列
二叉树的后序遍历序列