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 @   zjh6  阅读(21)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示