题目1184:二叉树遍历
- 题目描述:
-
编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。
例如如下的先序遍历字符串:
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:二叉树遍历相关推荐
- 九度oj 题目1078:二叉树遍历
题目1078:二叉树遍历 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5326 解决:3174 题目描述: 二叉树的前序.中序.后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历 ...
- 力扣题目——103. 二叉树的锯齿形层序遍历
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...
- 力扣题目——107. 二叉树的层序遍历 II
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根 ...
- l2-004 这是二叉搜索树吗?_LeetCode 例题精讲 | 11 二叉树转化为链表:二叉树遍历中的相邻结点...
本期例题: LeetCode 98. Validate Binary Search Tree 验证二叉搜索树(Medium) LeetCode 426. Convert Binary Tree to ...
- 十八、二叉树遍历序列还原
十八.二叉树遍历序列还原 文章目录 十八.二叉树遍历序列还原 题目描述 解题思路 上机代码 题目描述 给出二叉树的中序遍历序列和后序遍历序列,编程还原该二叉树. 输入: 第1行为二叉树的中序遍历序列 ...
- 【编程3】二叉树遍历(LeetCode.102)
文章目录 一.二叉树的层次遍历 1.题目描述--LeetCode.102 2.分析 3.实现 二.二叉树(Binary Tree) 1.相关概念 二叉树 满二叉树 完全二叉树 区分 2.二叉树的表示( ...
- LeetCode 1379. 找出克隆二叉树中的相同节点(二叉树遍历)
1. 题目 给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target. 其中,克隆树 cloned 是原始树 original ...
- 分治法在二叉树遍历中的应用(JAVA)--二叉查找树高度、前序遍历、中序遍历、后序遍
分治法在二叉树遍历中的应用 二叉树本身就是由两个更小的部分组成--左子树和右子树,所以二叉树的问题非常适合用分治法来解决. 二叉树的高度:从叶子到根之间的最长路径.我们可以理解为根的左子树高度和右子树 ...
- (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)
文章目录 一:二叉树遍历概述 二:二叉树深度优先遍历 (1)先序遍历-根左右(NLR) (2)中序遍历-左根右(LNR) (3)后序遍历-左右根(LRN) 总结:三种遍历方式动图演示 三:二叉树的层序 ...
- java二叉树原理_史上最全二叉树遍历详解(Java实现,原理相同)
二叉树遍历方法合集: 最近在LeetCode力扣上刷数据结构的二叉树合集,遇到的二叉树遍历方法,于是想理解透彻.本文讲解了二叉树遍历的四种方法,前.中.后序遍历. 对应题目: 94.二叉树的中序遍历 ...
最新文章
- C++中四种类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast要点解析
- halt库卡_KUKA库卡机器人编程之字符串处理函数
- Netty时间轮调度原理分析,再不了解你就out啦
- 从搜索引擎到核心交易数据库,详解阿里云神龙如何支撑双11
- illustrator下载_平面设计:16个Illustrator快捷方式可加快工作流程
- 微软编程题:寻找最小的k个值
- 远东传动收购机器人_一张图为你总结最近5年在机器人领域收购案例
- 7 orm 有批量更新_2020.12.24更新公告
- 一文读懂kafka(附加52道常见面试题)
- 微软发布ASP.NET 5路线图
- 在netbeans中使用tomcat服务器的web应用,在NetBeans中创建Apache—Tomcat-web服务器
- Axure|【医药、医疗】药企员工内部培训平台原型
- 简单适用的抽奖小程序
- 有监督学习与无监督学习
- 计算机机房需要装排烟风机不,送风机房和排烟机房的作用分别是什么
- 【老生谈算法】matlab实现RLS算法自适应均衡器——RLS算法
- BUUCTF [GXYCTF2019]Ping Ping Ping 1
- N76E003 驱动 ST7567 (SPI串口)
- 数据结构和算法之暴力递归到动态规划01-绝顶聪明纸牌问题
- 如何在 Windows 上 使用 ONLYOFFICE 协作编辑文档
热门文章
- Mongodb的Replica Sets + Sharding架构
- 第13天:提取方法对象
- python培训出来的有公司要吗-参加Python培训后真的能找到工作吗?上海Python培训...
- 在python中、下列代码的输出是什么-关于下列python多线程代码输出效果的疑问?...
- python3.6安装教程-Python 3.6.6安装教程(附安装包) | 我爱分享网
- python 调用linux命令-Python调用shell命令常用方法
- qpython手机版-QPython,一个在手机上运行Python的神器
- 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)
- python七段数码管设计图案-Python绘制七段数码管实例代码
- 少儿编程python课程-选好课程很重要,极客晨星让孩子喜欢上少儿编程