目录
一.二叉树已知先/后+中序,求后/先序
已知先s1+中s2,求后
#include<bits/stdc++.h>
using namespace std;
void print(string s1,string s2)
{
if(s1=="\0"||s2=="\0")
return ;
int pos=s2.find(s1[0]);//找到主根位置
print(s1.substr(1,pos),s2.substr(0,pos));//左
print(s1.substr(pos+1),s2.substr(pos+1));//右
cout<<s1[0];//根
}
int main()
{
string s1,s2;
cin>>s1>>s2;
print(s1,s2);
return 0;
}
补充:
1.find
找字符串某个特定字符的位置,下标从0开始。
如 hello.find(2) 就是l。
2.substr
截取字符串的部分,下标从0开始。
如 hello.substr(2,3) 就是“llo";若是 hello.substr(0) 就是“hello"。
已知中s1+后s2,求先
#include<bits/stdc++.h>
using namespace std;
void print(string s1,string s2)
{
if(s1=="\0"||s2=="\0")
return ;
int pos=s1.find(s2[s2.size()-1]);
cout<<s1[pos];//根
print(s1.substr(0,pos),s2.substr(0,pos));//左
print(s1.substr(pos+1),s2.substr(pos,s2.size()-pos-1));//右
}
int main()
{
string s1,s2;
cin>>s1>>s2;
print(s1,s2);
return 0;
}
更多的后面慢慢补充>W<