问题 J: 二叉树遍历
前言必读! http://blog.csdn.net/hnust_v/article/details/51747743
问题 J: 二叉树遍历
时间限制: 1 Sec 内存限制: 128 MB
提交: 720 解决: 289
题目描述对于二叉树T,可以有先序遍历、中序遍历和后序遍历三种遍历方式。现在我们要求给出一棵二叉树的先序遍历序列和中序遍历序列,输出它的广度优先遍历序列。
输入第一行为一个整数t(0<t<10),表示测试用例个数。 以下t行,每行输入一个测试用例,包含两个字符序列s1和s2,其中s1为一棵二叉树的先序遍历序列,s2为中序遍历序列。s1和s2之间用一个空格分 隔。序列只包含大写字母,并且每个字母最多只会出现一次。
输出为每个测试用例单独一行输出广度优先遍历序列。
样例输入
2
DBACEGF ABCDEFG
BCAD CBAD
样例输出
DBEACGF
BCAD
提示本题主要测试对二叉树遍历的理解。需要先根据先序序列和中序序列建立二叉树,然后对二叉树进行按层次的遍历。
这题刘汝佳书上有一道类似的,但是是打印后序,结果搁这就思维定势就没建树,而是记录层数,再从深往浅循环打印。(建树法待补)
#include <bits/stdc++.h>
using namespace std;
char s1[90],s2[90];
typedef struct {int order;char node;}Point;
Point Tree[100];int Count;int MAX;
void build(int n,char s1[],char s2[],int FLOR)
{MAX=max(MAX,FLOR);if(n<=0) return;int p = strchr(s2,s1[0])-s2;Tree[++Count].node=s1[0];Tree[Count].order=FLOR;build(p,s1+1,s2,FLOR+1);build(n-p-1,s1+p+1,s2+p+1,FLOR+1);
}
int main(void)
{//freopen("E:\\test.txt","r",stdin);int T;cin>>T;for(int t=1;t<=T;t++){scanf("%s %s",s1,s2);Count=0;MAX=1;int n=strlen(s1);build(n,s1,s2,1);for(int i=1;i<=MAX;i++)for(int j=1;j<=Count;j++)if(Tree[j].order==i) putchar(Tree[j].node);putchar('\n');}
}
问题 J: 二叉树遍历相关推荐
- 数据结构源码笔记(C语言):二叉树遍历
//二叉树遍历 #include<stdio.h> #include<malloc.h> #include<malloc.h> #define MaxSize 10 ...
- 第九周项目实践3 利用二叉树遍历思想解决问题
*Copyright (c)2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: *作 者:邵雪源 *完成日期:2017年11月2日 *版 本 号:v1.0 ...
- 九度oj 题目1078:二叉树遍历
题目1078:二叉树遍历 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5326 解决:3174 题目描述: 二叉树的前序.中序.后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历 ...
- 二叉树遍历(已知先序和中序)
4931: 二叉树遍历 Time Limit: 1 Sec Memory Limit: 32 MB Description 二叉树的前序.中序.后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍 ...
- (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)
文章目录 一:二叉树遍历概述 二:二叉树深度优先遍历 (1)先序遍历-根左右(NLR) (2)中序遍历-左根右(LNR) (3)后序遍历-左右根(LRN) 总结:三种遍历方式动图演示 三:二叉树的层序 ...
- 数据结构上机实践第九周项目3 - 利用二叉树遍历思想解决问题
利用二叉树遍历思想解决问题 学以致用,知行合一,学了知识就要会运用,否则跟背课文没什么区别,上次实践,做了二叉树递归遍历的算法实现,本次实践,将利用遍历思想解决问题,将遍历思想真正的运用到实际问题需求 ...
- 数据结构上机实践第九周项目2 - 二叉树遍历的递归算法
二叉树遍历的递归算法 递归问题总会成为我们的难点,代码量少,思维量确是很大,难是在所难免的,所以,在思维理解的同时结合实现代码理解,这样就很有可能让我们打开思路,理解的更深,本次实践将在二叉树算法的基 ...
- 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树
[本文谢绝转载,原文来自http://990487026.blog.51cto.com] 树 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树二叉树的创建,关系建立二叉树的创建 ...
- 二叉树遍历-层序-递归
层序遍历:按照层级,从上往下,从左到右.使用广度优先搜索算法. 定义一棵二叉树,遍历逻辑按照图中的层级依次进行遍历 按照层级划分,二叉树分为四级,如果把没有节点的用null节点进行填充,那么二叉树将变 ...
- 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)
zsychanpin 博客园 首页 新随笔 联系 订阅 管理 树的基本概念和遍历规则 树的递归定义 树是n(n>0)个结点的有限集,这个集合满足下面条件: ⑴有且仅有一个结点没有前驱 ...
最新文章
- http协议的Request Payload 和 Form Data 的区别
- windows boot files
- [数据结构]数据结构中各种树
- NLP情感分析笔记(一):Baseline
- ObjectDataSource 如何传递查询参数
- 小度WiFi作为无线网卡设置的方法
- yolov2 - tiny模型训练识别
- 建模专题1:石墨烯-氧化石墨烯及各种纳米材料体系的构建方法
- (ZT)中国姓氏韦氏拼音拼法
- Java 合并Word文档
- Ubuntu16.04中修复Pycharm问号图标问题
- 有哪些测试反应速度的软件,用批处理实现的反应速度测试工具
- google 输入栏不显示历史搜索记录方法
- 火山火花代码编辑框(火花编辑框)Scintilla代码编辑框案例教程
- java高级计算器_高级计算器[Java版]
- Linux shell 的ss
- 百度对 十进制网络 的官方态度
- 韦尔奇经典的一次演讲:2001年夏,在股东年会上的讲话(中英文)
- 手把手教你调试构建一个Vue/小程序商城项目源码
- 用最简单的方法实现QQ魔法表情效果!