博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重建二叉树(中后序求前序)
阅读量:6312 次
发布时间:2019-06-22

本文共 2170 字,大约阅读时间需要 7 分钟。

重建二叉树

时间限制:
1000 ms  |  内存限制:65535 KB
难度:
3
 
描述
题目很简单,给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!)。
 
输入
输入有多组数据(少于100组),以文件结尾结束。 每组数据仅一行,包括两个字符串,中间用空格隔开,分别表示二叉树的后序和中序序列(字符串长度小于26,输入数据保证合法)。
输出
每组输出数据单独占一行,输出对应得先序序列。
样例输入
ACBFGED ABCDEFGCDAB CBAD
样例输出
DBACEGFBCAD
来源
题解:由中后序重建二叉树,再输出;
代码:
#include
#include
#include
#include
#include
#include
using namespace std;struct Node{ Node *l, *r; char val; Node(){ l = r = NULL; }};int find(char *a , char x){ for(int i = 0; a[i]; i++){ if(x == a[i]){ //printf("i = %d\n", i); return i; } } return 0;}Node* build(int n, char *a, char *b){ if(n <= 0)return NULL; Node *x; x = new Node; x->val = b[n - 1]; int p = find(a, x->val); x->l = build(p, a, b); x->r = build(n - p - 1, a + find(a, x->val) + 1, b + p); return x;}void visit(Node *root){ if(root == NULL)return; printf("%c", root->val); visit(root->l); visit(root->r);}int main(){ char a[110], b[110]; while(~scanf("%s%s", b, a)){ Node *root = build(strlen(b), a, b); visit(root);puts(""); } return 0;}

 其实也可以不建树,直接输出;

代码:

#include
#include
#include
#include
#include
#include
using namespace std;/*struct Node{ Node *l, *r; char val; Node(){ l = r = NULL; }};int find(char *a , char x){ for(int i = 0; a[i]; i++){ if(x == a[i]){ //printf("i = %d\n", i); return i; } } return 0;}Node* build(int n, char *a, char *b){ if(n <= 0)return NULL; Node *x; x = new Node; x->val = b[n - 1]; int p = find(a, x->val); x->l = build(p, a, b); x->r = build(n - p - 1, a + find(a, x->val) + 1, b + p); return x;}void visit(Node *root){ if(root == NULL)return; printf("%c", root->val); visit(root->l); visit(root->r);}*/void dfs(int n, char *a, char *b){ if(n <= 0)return; printf("%c", b[n - 1]); int p = strchr(a, b[n - 1]) - a; dfs(p, a, b); dfs(n - p - 1, a + p + 1, b + p);}int main(){ char a[110], b[110]; while(~scanf("%s%s", b, a)){// Node *root = build(strlen(b), a, b);// visit(root);puts(""); dfs(strlen(b), a, b);puts(""); } return 0;}

 

转载地址:http://oghxa.baihongyu.com/

你可能感兴趣的文章
多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】...
查看>>
自动生成四则运算题目
查看>>
【翻译】使用新的Sencha Cmd 4命令app watch
查看>>
【前台】【单页跳转】整个项目实现单页面跳转,抛弃iframe
查看>>
因为你是前端程序员!
查看>>
数据库设计中的14个技巧
查看>>
Android学习系列(5)--App布局初探之简单模型
查看>>
git回退到某个历史版本
查看>>
ecshop
查看>>
HTML5基础(二)
查看>>
在GCE上安装Apache、tomcat等
查看>>
在Mac 系统下进行文件的显示和隐藏
查看>>
ue4(c++) 按钮中的文字居中的问题
查看>>
技能点
查看>>
读书笔记《乌合之众》
查看>>
Hadoop日记Day1---Hadoop介绍
查看>>
iOS 学习资料汇总
查看>>
centos7 yum安装jdk
查看>>
Bluedroid与BluZ,蓝牙测试方法的变动(基于bludroid和BlueZ的对比)
查看>>
接口和抽象类有什么区别
查看>>