二叉树重建,中序+后序求先序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树重建,中序+后序求先序相关的知识,希望对你有一定的参考价值。

tree(i-la,la,lb-n-la+i);

tree(n+la-i-1,i+1,lb-1);

技术分享图片

 

不用数字转

#include <iostream>
using namespace std;
string a,b;
inline void tree(int n,int la,int lb)
{
if(n<=0) return;
for(int i=la;i<=la+n-1;i++)
{
if(a[i]==b[lb])
{
cout<<b[lb];
tree(i-la,la,lb-n-la+i);
tree(n+la-i-1,i+1,lb-1);
return ;
}
}
}
int main()
{
cin>>a;
cin>>b;
tree(a.size(),0,a.size()-1);
return 0;
}

用数字转

#include <iostream>
using namespace std;
string a,b;
int zz[1000086],hh[1000086];
int len1=0,len2=0,top;
inline void tree(int n,int la,int lb)
{
if(n<=0) return;
for(int i=la;i<=la+n-1;i++)
{
if(zz[i]==hh[lb])
{
cout<<char(hh[lb]+64);
tree(i-la,la,lb-n-la+i);
tree(n+la-i-1,i+1,lb-1);
return ;
}
}
}
int main()
{
cin>>a;
cin>>b;
for(int i=0;i<a.size();i++)
zz[++len1]=int(a[i]-‘A‘+1);
for(int i=0;i<b.size();i++)
hh[++len2]=int(b[i]-‘A‘+1);
tree(a.size(),1,a.size());
return 0;
}

 





















































以上是关于二叉树重建,中序+后序求先序的主要内容,如果未能解决你的问题,请参考以下文章

二叉树--已知先序中序求后序--已知中序后序求先序(基本按照网上某大神思路搬过来的)

数据结构——已知先序中序求后序,已知中序后序求先序

七:重建二叉树(依据先序遍历(或者后序遍历)和中序遍历重建二叉树)

蓝桥 - 求先序排列(知中序和后序求先序)

怎么根据二叉树的前序,中序,确定它的后序

数据结构二叉树已知中序遍历,后序遍历,求先序遍历???