1.算法
本题是给出一个树的先序和中序,输出它的后序。可以通过递归实现。
举例说明
先序:DBACEGF 中序:ABCDEFG
(1)把整个7个字符作为一段,根据先序找出第一个根D,根据中序可以得出,D左边为ABC,右边为EFG。
(2)对D两边递归进行(1)操作。
(3)递归的终止条件是这一段中只有一个字符(即为叶结点)
根据以上可以步骤可以生成一棵树,然后递归输出后序。
ps:
后来发现可以不用生成树的结构,直接递归完成,即在生成树的递归函数中进行后序输出。
2.实现
(1)对于没有给定行的输入可以用 while(cin>>str1>>str2)进行判断,对于如何用scanf函数判断有待解决
(2)不知道为什么我的程序在c++环境中可以成功运行,而在g++环境中发生Output Limit Exceeded的错误,有待解决
3.代码
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
char str1[26],str2[26];
void func(int p,int q,int len);
int main()
{
int len=0;
while(cin>>str1>>str2)
{
len=strlen(str1);
func(0,0,len);
printf("\n");
}
return 0;
}
void func(int p,int q,int len)
{
if(len==1)
{
printf("%c",str1[p]);
return;
}
int x=q;
while(str2[x]!=str1[p])x++;
int len1=x-q;
int len2=len-(1+x-q);
if(len1>0)func(p+1,q,len1);
if(len2>0)func(p+1+len1,x+1,len2);
printf("%c",str2[x]);
}
分享到:
相关推荐
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
poj 1440解题报告 poj 1440解题报告 poj 1440解题报告 poj 1440解题报告
poj 3083解题报告poj 3083解题报告poj 3083解题报告poj 3083解题报告
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
这个“北大poj解题报告”包含了作者在使用POJ平台解题过程中的学习总结和经验分享,旨在帮助软件工程专业的学生提升编程能力和算法理解。 解题报告通常会涵盖以下几个方面: 1. **基础算法讲解**:解题报告中可能...
poj 3720解题报告poj 3720解题报告poj 3720解题报告poj 3720解题报告
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
【描述】"北大POJ2255-Tree Recovery 解题报告+AC代码" 提示我们,这是一个关于解决特定问题的实践案例。AC(Accepted)代码是指通过了所有测试用例的程序代码,通常表示解题者已经找到了正确且高效的算法来解答这个...
【ACM竞赛与北大POJ解题报告】 在编程竞赛领域,ACM(国际大学生程序设计竞赛,简称ACM/ICPC)是一项极具影响力的比赛,它挑战参赛者的算法设计、问题理解和快速编码能力。北京大学(Peking University)的在线判题...
### poj1691解题报告 #### 题目信息 - **题目名称**:Painting A Board - **时间限制**:1S - **内存限制**:1000K - **提交总数**:62 - **通过总数**:35 - **来源**:...
【标题】"80道POJ解题报告"所涉及的知识点主要集中在ACM(国际大学生程序设计竞赛)和POJ(编程Online Judge系统)上。POJ是北京大学主办的一个在线编程竞赛平台,广泛用于训练和提升程序员的算法设计与实现能力。80...
【POJ 1316 解题报告】 本题源自北京大学举办的ACM竞赛,题号为POJ 1316,主要涉及算法设计和数组的应用。题目要求找到10000以内的所有self-number,并输出它们。Self-number是一个特殊的整数序列,它的定义是该数...
《POJ 2392解题报告:高效计算最高堆积高度》 本文将深入解析POJ 2392这个编程题目,该题目要求利用给定的不同高度、耐压性和数量的block,来确定能够堆叠出的最大高度。解决这个问题的关键在于运用排序和动态规划...
【POJ解题报告大全】是我精心整理的一份编程题解集合,主要涵盖了在Programming Online Judge(POJ)平台上遇到的250道经典题目。POJ是一个著名的在线编程竞赛平台,它为程序员提供了大量的算法练习题目,是提高编程...
这篇解题报告主要介绍了如何解决POJ2828这个编程题目。该题目涉及的数据结构是区间树(Interval Tree),这是一种用于高效处理区间查询和修改的树形数据结构。在这个问题中,我们需要根据输入的元素位置和值,构建一...
【北大ACM_POJ_解题报告】是北京大学ACM在线评测系统POJ的解题资源集合,这个压缩包包含了对POJ平台上的各种类型ACM竞赛题目的详细解答。ACM,全称国际大学生程序设计竞赛(International Collegiate Programming ...
2遍dp poj_3613解题报告 poj_3613解题报告
解题思路 1、前序遍历的第一个字母必是 根 2、在中序遍历的字母串中找出 根字母,那么根字母左右两边的字符串就分别是它的左、右子树 3、利用递归复原二叉树(把子树看作新的二叉树) 4、后序遍历特征:后序遍历...