#include <常用>
#include "不同轮.cpp"
#include "显示树.cpp"
构 A{
整 a,b;
向量<A*>们;
};
空 串转配(向量<串>&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.右;
向量<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);
}