求先序排列-树
题目
树有三种方式遍历
先序 根左右
中序 左根右
后续 左右根
所以 我们可以从样例 求出每次dfs的根 还有每次左右分的字数 如此不断遍历下去。
代码借鉴于题解
#include<iostream>
using namespace std;
string s1,s2;
int len1,len2;
void dfs(string sx,string sy)
{
if(sx.size()>0)
{
char ch=sy[sy.size()-1];
int g=sx.find(ch);
cout<<ch;
dfs(sx.substr(0,g),sy.substr(0,g));
dfs(sx.substr(g+1,sx.size()-g-1),sy.substr(g,sy.size()-g-1));
//左边不写默认读到底
}
}
int main()
{
//中序遍历 左根右
//后 左右根
cin>>s1>>s2;
len1=s1.size();
len2=s2.size();
dfs(s1,s2);
return 0;
}

浙公网安备 33010602011771号