求二叉树的先序遍历
来源:互联网 发布:mac系统语言改成英文 编辑:程序博客网 时间:2024/06/05 01:10
求二叉树的先序遍历
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历
Input
输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的中序遍历序列,第二个字符串表示二叉树的后序遍历序列。
Output
输出二叉树的先序遍历序列
Example Input
2
dbgeafc
dgebfca
lnixu
linux
Example Output
abdegcf
xnliu
#include <bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lchild, *rchild;}BiTNode, *BiTree;void CreateBiTree(BiTree &T, char *mid, char *last, int len){ if(len == 0) { T = NULL; return ; } char ch = last[len - 1]; int index = 0; T = (BiTNode *)malloc(sizeof(BiTNode)); T -> data = ch; //后序列最后一个字母即为根节点 while(mid[index] != ch) //中序列根节点前为左子树,后为右子树 index++; CreateBiTree(T -> lchild, mid, last, index); CreateBiTree(T -> rchild, mid+index+1, last+index, len-index-1);}void order(BiTree T) //先序遍历{ if(T) { cout << T -> data; order(T -> lchild); order(T -> rchild); }}int main(){ BiTree T; char mid[110], last[110]; int n, len; while(cin >> n) { while(n--) { cin >> mid >> last; len = strlen(mid); CreateBiTree(T, mid, last, len); order(T); cout << endl; } } return 0;}
阅读全文
0 0
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 求二叉树的先序遍历
- 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
- Java基础3--条件选择结构
- fis3 一些特殊方法
- stm32开机时,在eeprom读取存储的内容,发送给DGUS屏进行显示数据,但是第一个数据显示是0
- Androd 多语言国际化设置
- 求二叉树的先序遍历
- 2017.8.16 总结
- HDU 6086 Rikka with String(2017 Multi-University Training Contest 3)
- 带权二分匹配——KM算法
- menu
- OpenCV之bitwise_and、bitwise_not等图像基本运算及掩膜
- SpringBoot和Hibernate整合
- 8月16日训练笔记
- 【OpenCV3.3】检测图像中的身份证区域