题目描述:

编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。
例如如下的先序遍历字符串:
ABC##DE#G##F###
其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。

输入:

输入包括1行字符串,长度不超过100。

输出:

可能有多组测试数据,对于每组数据,
输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。
每个输出结果占一行。

样例输入:
abc##de#g##f###
样例输出:
c b e g d f a 
#include <cstdio>
#include <cstring>using namespace std;const int N = 110;struct Tree
{Tree* left;Tree* right;char ch;Tree() {left = NULL;right = NULL;ch = 0;}
};Tree treeNode[N];char buf[N];
int cnt;void solve();
int parse(Tree** root, int start);
void dfs(Tree *root);int main()
{#ifndef ONLINE_JUDGEfreopen("d:\\OJ\\uva_in.txt", "r", stdin);#endif // ONLINE_JUDGEwhile (scanf("%s", buf) == 1) {solve();}return 0;
}void solve()
{cnt = 0;Tree *root = NULL;parse(&root, 0);dfs(root);printf("\n");
}int parse(Tree** root, int start)
{int len = strlen(buf);if (start >= len) return start;char ch = buf[start];if (ch == '#') {*root = 0;start++;return start;}bool flag = true;*root = &treeNode[cnt++];(*root)->ch = ch;start++;start = parse(&((*root)->left), start);start = parse(&((*root)->right), start);return start;
}void dfs(Tree *root)
{if (root == NULL) return;dfs(root->left);printf("%c ", root->ch);dfs(root->right);
}

题目1184:二叉树遍历相关推荐

  1. 九度oj 题目1078:二叉树遍历

    题目1078:二叉树遍历 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5326 解决:3174 题目描述: 二叉树的前序.中序.后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历 ...

  2. 力扣题目——103. 二叉树的锯齿形层序遍历

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...

  3. 力扣题目——107. 二叉树的层序遍历 II

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根 ...

  4. l2-004 这是二叉搜索树吗?_LeetCode 例题精讲 | 11 二叉树转化为链表:二叉树遍历中的相邻结点...

    本期例题: LeetCode 98. Validate Binary Search Tree 验证二叉搜索树(Medium) LeetCode 426. Convert Binary Tree to ...

  5. 十八、二叉树遍历序列还原

    十八.二叉树遍历序列还原 文章目录 十八.二叉树遍历序列还原 题目描述 解题思路 上机代码 题目描述 给出二叉树的中序遍历序列和后序遍历序列,编程还原该二叉树. 输入: ​第1行为二叉树的中序遍历序列 ...

  6. 【编程3】二叉树遍历(LeetCode.102)

    文章目录 一.二叉树的层次遍历 1.题目描述--LeetCode.102 2.分析 3.实现 二.二叉树(Binary Tree) 1.相关概念 二叉树 满二叉树 完全二叉树 区分 2.二叉树的表示( ...

  7. LeetCode 1379. 找出克隆二叉树中的相同节点(二叉树遍历)

    1. 题目 给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target. 其中,克隆树 cloned 是原始树 original ...

  8. 分治法在二叉树遍历中的应用(JAVA)--二叉查找树高度、前序遍历、中序遍历、后序遍

    分治法在二叉树遍历中的应用 二叉树本身就是由两个更小的部分组成--左子树和右子树,所以二叉树的问题非常适合用分治法来解决. 二叉树的高度:从叶子到根之间的最长路径.我们可以理解为根的左子树高度和右子树 ...

  9. (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)

    文章目录 一:二叉树遍历概述 二:二叉树深度优先遍历 (1)先序遍历-根左右(NLR) (2)中序遍历-左根右(LNR) (3)后序遍历-左右根(LRN) 总结:三种遍历方式动图演示 三:二叉树的层序 ...

  10. java二叉树原理_史上最全二叉树遍历详解(Java实现,原理相同)

    二叉树遍历方法合集: 最近在LeetCode力扣上刷数据结构的二叉树合集,遇到的二叉树遍历方法,于是想理解透彻.本文讲解了二叉树遍历的四种方法,前.中.后序遍历. 对应题目: 94.二叉树的中序遍历 ...

最新文章

  1. C++中四种类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast要点解析
  2. halt库卡_KUKA库卡机器人编程之字符串处理函数
  3. Netty时间轮调度原理分析,再不了解你就out啦
  4. 从搜索引擎到核心交易数据库,详解阿里云神龙如何支撑双11
  5. illustrator下载_平面设计:16个Illustrator快捷方式可加快工作流程
  6. 微软编程题:寻找最小的k个值
  7. 远东传动收购机器人_一张图为你总结最近5年在机器人领域收购案例
  8. 7 orm 有批量更新_2020.12.24更新公告
  9. 一文读懂kafka(附加52道常见面试题)
  10. 微软发布ASP.NET 5路线图
  11. 在netbeans中使用tomcat服务器的web应用,在NetBeans中创建Apache—Tomcat-web服务器
  12. Axure|【医药、医疗】药企员工内部培训平台原型
  13. 简单适用的抽奖小程序
  14. 有监督学习与无监督学习
  15. 计算机机房需要装排烟风机不,送风机房和排烟机房的作用分别是什么
  16. 【老生谈算法】matlab实现RLS算法自适应均衡器——RLS算法
  17. BUUCTF [GXYCTF2019]Ping Ping Ping 1
  18. N76E003 驱动 ST7567 (SPI串口)
  19. 数据结构和算法之暴力递归到动态规划01-绝顶聪明纸牌问题
  20. 如何在 Windows 上 使用 ONLYOFFICE 协作编辑文档

热门文章

  1. Mongodb的Replica Sets + Sharding架构
  2. 第13天:提取方法对象
  3. python培训出来的有公司要吗-参加Python培训后真的能找到工作吗?上海Python培训...
  4. 在python中、下列代码的输出是什么-关于下列python多线程代码输出效果的疑问?...
  5. python3.6安装教程-Python 3.6.6安装教程(附安装包) | 我爱分享网
  6. python 调用linux命令-Python调用shell命令常用方法
  7. qpython手机版-QPython,一个在手机上运行Python的神器
  8. 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)
  9. python七段数码管设计图案-Python绘制七段数码管实例代码
  10. 少儿编程python课程-选好课程很重要,极客晨星让孩子喜欢上少儿编程