#include<iostream>
#include<cstring>
using namespace std;
char pre_order[27];
char in_order[27];
void build(int l1, int r1, int l2, int r2, int p) {
if(l1 > r1) return ;
for( p = l2; in_order[p] != pre_order[l1]; p++);
build( l1 + 1, l1 + p - l2, l2, p - 1,p);
build( l1 + p - l2 + 1, r1, p + 1, r2, p);//在两句是在递归、输出它的左孩子
cout << in_order[p];
}
int main() {
while( cin >> pre_order >> in_order) {//1、流式输入像水流一样,如果断掉(空格、换行)就会停止2、cin输入数组时会自动一个个分开放入
int l = strlen(pre_order) - 1;
build(0, l, 0, l, 0);
cout << endl;
}
return 0;
}
二叉树重建 uva 536
最新推荐文章于 2022-10-09 23:28:27 发布
本文介绍了一种使用递归实现二叉树中序遍历的方法。通过输入先序和中序遍历序列,程序能够构造并输出二叉树的中序遍历结果。该算法适用于计算机科学中的数据结构学习和实践。
256

被折叠的 条评论
为什么被折叠?



