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

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

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

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;
}




目录
相关文章
【自己动手画CPU】单总线CPU设计(三)
【自己动手画CPU】单总线CPU设计(三)
709 1
|
5月前
|
存储 人工智能 算法
AI 图纸表格识别与智能文档协同处理技术介绍
针对制造业、工程建设等领域图纸表格数据提取效率低、误差高的问题,本文介绍了一套涵盖表格识别、数据导出、EBOM转MBOM及智能文档协同处理的技术方案,实现图纸数据结构化与全生命周期管理。
319 0
|
4月前
|
存储 人工智能 安全
函数计算进化之路:AI Sandbox 新基座
AI Agent Sandbox 是应对 AI 代理自主性风险的关键技术,提供安全隔离环境以执行代码、交互应用和处理敏感数据。它解决了三大挑战:隔离与安全、状态管理与成本、可扩展性与运维。阿里云函数计算凭借物理隔离架构、Serverless 弹性与成本优势,结合会话亲和、隔离及存储安全等创新能力,成为 AI Agent Sandbox 的理想运行时平台,助力 AI 技术安全落地与商业化发展。
|
4月前
|
缓存 Unix Android开发
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
386 8
|
3月前
|
NoSQL IDE MongoDB
Studio 3T 2025.18 发布 - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.18 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
228 0
Studio 3T 2025.18 发布 - MongoDB 的终极 GUI、IDE 和 客户端
|
12月前
|
Java C++
【C++数据结构——树】二叉树的基本运算(头歌实践教学平台习题)【合集】
本关任务:编写一个程序实现二叉树的基本运算。​ 相关知识 创建二叉树 销毁二叉树 查找结点 求二叉树的高度 输出二叉树 //二叉树节点结构体定义 structTreeNode{ intval; TreeNode*left; TreeNode*right; TreeNode(intx):val(x),left(NULL),right(NULL){} }; 创建二叉树 //创建二叉树函数(简单示例,手动构建) TreeNode*create
379 12
|
6月前
|
Android开发 内存技术
fastboot工具的常见命令及其用途
`fastboot boot <文件名>.img`:不将其flash到设备上,而是直接从给定的img文件启动。这是测试新的或修改后的boot镜像而不实际安装的好方法。
2731 18
|
5月前
|
人工智能 定位技术 C#
【Unity3D实例-功能-移动】通过鼠标点击进行角色移动
本文介绍了如何在Unity中实现鼠标点击控制角色移动的功能。通过安装导航网格、设置地图与角色、烘焙路径及编写脚本,带领读者一步步构建角色自动寻路系统,增强游戏交互体验。
273 0
|
11月前
|
人工智能 负载均衡 并行计算
DeepSeek-V3 高效训练关键技术分析
本文从模型架构、并行策略、通信优化和显存优化四个方面展开,深入分析了DeepSeek-V3高效训练的关键技术,探讨其如何以仅5%的算力实现对标GPT-4o的性能。
1739 146

热门文章

最新文章