c++解析树示例

#include <常用>
#include "不同轮.cpp"
#include "显示树.cpp"

构 A{
    整 a,b;
    向量<A*>;
};//a表示长度.b为子个数

空 串转配(向量<>&a,向量<配数据>&b){
    整 i=0;(&p:a){
        配数据 d;d.=i++;(符 c:p){
            串 e{c};(d.,e);
        };(b,d);
    }
}
空 取配(向量<配数据>&e,向量<>&,向量<配数据>&){(&p:)(,e[p.]);
}
A*解析(向量<配数据>&e,整 i){
    向量<向量<>>;无序映<,>;
    坑 a=本轮分(e,i,,);
    A*p=A();p->a=a.;p->b=a.;
    //左为长,右为大小.b为子类大小.
    向量<A*>;整 j;整 k=0;(&p:){(k>=a.);向量<配数据>;k++;
        取配(e,p,);j=a.;
        A*m=解析(,j);(,m);
    }
    p->=;中 p;
}//递归

空 主(){
    串 a{"a.txt"};
    静 文分 d;d.切换(a);向量<配数据>e;
    串转配(d.,e);A*b=解析(e,0);
    静 动 f=[](A*t){中 打印(t->a,t->b);};
    广显树(b,f);
}

posted @ 2022-07-21 16:08  zjh6  阅读(28)  评论(0)    收藏  举报  来源