中序+层次遍历输出前序
【题目链接】
http://ybt.ssoier.cn:8088/status.php
【算法】
中序控制区间,层次遍历中出现的第一个在该区间中的元素即当前区间的根节点。
【代码】
1 #include <bits/stdc++.h> 2 using namespace std; 3 string s1,s2; 4 void solve(int l,int r) 5 { 6 int i,j,flag=0; 7 for(i=0;i<s2.length()&&!flag;i++) 8 for(j=l;j<=r;j++) 9 if(s2[i]==s1[j]) { cout<<s2[i],flag=1; break; } 10 if(j>l&&j<=r) solve(l,j-1); 11 if(j>=l&&j<r) solve(j+1,r); 12 } 13 int main() 14 { 15 cin>>s1>>s2; 16 solve(0,s1.length()-1); 17 return 0; 18 }