博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj2255Tree Recovery【二叉树重构】
阅读量:5250 次
发布时间:2019-06-14

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

大意:告诉你一棵二叉树的先序遍历和中序遍历求该二叉树的后续遍历

 

代码:

1 #include 
2 #include
3 #include
4 using namespace std; 5 6 const int maxn = 30; 7 char pr[maxn], mi[maxn]; 8 9 struct Node {10 int left;11 int right;12 }tr[maxn];13 14 int root;15 16 void init(int p) {17 tr[p].left = -1;18 tr[p].right = -1;19 }20 21 void fason(int pa, int son) {22 if(son < pa) {23 if(tr[pa].left == -1) {24 init(son);25 tr[pa].left = son;26 } else fason(tr[pa].left, son);27 } else {28 if(tr[pa].right == -1) {29 init(son);30 tr[pa].right = son;31 } else fason(tr[pa].right, son);32 }33 }34 35 void build_tree() {36 for(int i = 0; mi[i]; i++) {37 if(mi[i] == pr[0]) {38 root = i;39 init(root);40 break;41 }42 }43 for(int i =1; pr[i]; i++) {44 for(int j = 0; mi[j]; j++) {45 if(mi[j] == pr[i]) {46 fason(root, j);47 break;48 }49 }50 }51 }52 void pre_out(int p) {53 printf("%c", mi[p]);54 if(tr[p].left != -1) pre_out(tr[p].left);55 if(tr[p].right != -1) pre_out(tr[p].right);56 }57 void mid_out(int p) {58 if(tr[p].left != -1) mid_out(tr[p].left);59 printf("%c", mi[p]);60 if(tr[p].right != -1) mid_out(tr[p].right);61 }62 63 void back_out(int p) {64 if(tr[p].left != -1) back_out(tr[p].left);65 if(tr[p].right != -1) back_out(tr[p].right);66 printf("%c", mi[p]);67 }68 69 int main() {70 while(EOF != scanf("%s %s",pr, mi) ) {71 build_tree();72 pre_out(root);73 puts("");74 mid_out(root);75 puts("");76 back_out(root);77 puts("");78 }79 return 0;80 }
View Code

 

转载于:https://www.cnblogs.com/zhanzhao/p/3989262.html

你可能感兴趣的文章
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
stap-prep 需要安装那些内核符号
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
socket初识
查看>>
磁盘测试工具
查看>>
代码变量、函数命名神奇网站
查看>>
redis cli命令
查看>>
Problem B: 占点游戏
查看>>
python常用模块之sys, os, random
查看>>
HDU 2548 A strange lift
查看>>
Linux服务器在外地,如何用eclipse连接hdfs
查看>>
react双组件传值和传参
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
CentOS 简单命令
查看>>