代码拉取完成,页面将自动刷新
背景:
目前许多的软件配置都是结构化的,如下面的NGINX配置示例:
http {
server {
access_log logs/access.log;
location /A {
access_log logs/access.log;
}
location /B {
access_log logs/access.log;
location /C {
access_log logs/access.log.child;
}
}
location /D {
access_log off;
}
}
}
但实际上,如果一个指令可以配置在不同层面,其具有继承关系,其配置可以优化。上面的配置可以简化为
http {
server {
access_log logs/access.log;
location /A {
#access_log logs/access.log; 此处不在需要配置,直接继承server层的access_log
}
location /B {
#access_log logs/access.log; 此处也不在需要配置,直接继承server层的access_log
location /C {
access_log logs/access.log.child;
}
}
location /D {
access_log off;
}
}
}
问题:
在工具自动产生配置文件时,需要优化,以减少产生的配置文件大小,并方便维护
需求:
1 给定一个具备任意层级、每个节点具备任意属性的树状数据结构,如果该节点的子节点具备和父节点的相同属性,可以进行裁剪。
2 在中间层节点属性变化时,需要对其子节点进行变更。如下图示例:
评测:
根据背景介绍自己设计数据结构,提供可执行程序,1输出优化后的数据结构,2输出对中间层调整后的数据结构
登录 后才可以发表评论