标签:gt Recovery int Tree num l2 二叉树 l1 root
- 根据前序和中序遍历递归建树,输出后序遍历。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
char tr1[35],tr2[35],tr3[35];
int num=1,ans;
struct node{
int l,r;
char a;
}n[305];
int build(int l1,int r1,int l2,int r2,int root)
{
if(l1>r1) return 0;
int x=l2;
n[root].a=tr1[l1-1];
char c=tr1[l1-1];
while(tr2[x-1]!=c) x++;
n[root].l=build(l1+1,l1+x-l2,l2,x-1,++num);
n[root].r=build(l1+x-l2+1,r1,x+1,r2,++num);
return root;
}
void gt(int x)
{
if(n[x].l)
gt(n[x].l);
if(n[x].r)
gt(n[x].r);
tr3[++num]=n[x].a;
}
void intt()
{
for(int i=1;i<=200;i++)
n[i].l=n[i].r=0;
num=1;
}
int main()
{
while(cin>>tr1)
{
getchar();
cin>>tr2;
ans=strlen(tr2);
build(1,ans,1,ans,1);
num=0;
gt(1);
for(int i=1;i<=num;i++)
cout<<tr3[i];
cout<<endl;
intt();
getchar();
}
}
标签:gt,Recovery,int,Tree,num,l2,二叉树,l1,root 来源: https://blog.csdn.net/gyp0205/article/details/114376416
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。