1366:二叉树输出(btout)

二叉树输出

在后序遍历的基础上加上一些操作,逆向求得所有节点的子节点数。

#include<iostream>
#include<cstring>
using namespace std;
string pre,mid;
int a[105];
int solve(int pt,int l,int r){
    if(l==r)return 1;
    if(l>r)return 0;
    int p=mid.find(pre[pt]);
    return a[pt]=solve(pt+1,l,p-1)+solve(pt+p-l+1,p+1,r);
}
int main(){
    cin>>pre>>mid;
    solve(0,0,pre.length()-1);
    for(int i=0;i<pre.length();i++){
        a[i]=!a[i]?1:a[i];
        for(int j=0;j<a[i];j++)
            cout<<pre[i];
        cout<<endl;
    }
	return 0;
}
posted @ 2021-09-15 19:07  Rekord  阅读(507)  评论(0编辑  收藏  举报