基于php技术的个人网站设计我附近的广告公司

张小明 2026/1/13 8:44:57
基于php技术的个人网站设计,我附近的广告公司,北京网站建设 seo公司,wordpress开启链接一、核心知识点概述 本案例通过递归算法实现树形结构的遍历#xff0c;主要涉及以下知识点#xff1a; 树形结构的递归遍历Set数据结构的去重特性层级结果的合并逻辑条件判断与递归终止条件 二、递归实现原理分析 举个例子 基础数据 const mockData [{id: 1,labe: 父节点1,c…一、核心知识点概述本案例通过递归算法实现树形结构的遍历主要涉及以下知识点树形结构的递归遍历Set数据结构的去重特性层级结果的合并逻辑条件判断与递归终止条件二、递归实现原理分析举个例子基础数据const mockData [{id: 1, labe: 父节点1, children: [{id:11,label:子节点1,},{id:12,label:子节点2,},{id:13,label:子节点3,},],},{id: 2, labe: 父节点2, children: [{id:21,label:子节点1,},{id:22,label:子节点2,},{id:23,label:子节点3,},],},{id: 3, labe: 父节点3, children: [{id: 31, label: 子节点1, children: [{id:311,label:子节点1.1,},{id:312,label:子节点1.2,},{id:313,label:子节点1.3,},],},{id:32,label:子节点2,},{id:33,label:子节点3,},],},];const selectKey [1,11,12,22];需求根据给定选中的节点id值自动填充其父级在节点id1. 递归函数结构constcollectAllParents(nodes,checkedKeys){constresultnewSet();nodes.forEach(item{// 基础判断当前节点是否被选中if(checkedKeys.has(item.id))result.add(item.id);// 递归处理子节点if(item?.children?.length0){constsubResultcollectAllParents(item.children,checkedKeys);// 合并子结果与当前节点if(subResult.size0){result.add(item.id);// 父节点自动选中subResult.forEach(idresult.add(id));}}});returnresult;};2. 递归终止条件当节点无子节点item.children.length 0时递归自然终止当遍历完所有子节点后返回当前层级的结果集3. 递归执行流程从根节点开始遍历检查当前节点是否被选中若存在子节点递归处理子节点集合合并子节点结果与当前节点结果返回包含当前层级及子层级结果的集合三、Set数据结构的作用1. 去重特性constcheckedKeysnewSet(selectKey);确保遍历过程中节点ID的唯一性提供O(1)时间复杂度的成员判断has()方法2. 结果集的合并subResult.forEach(idresult.add(id));利用Set的自动去重特性合并多级结果避免手动去重的复杂性四、层级结果合并机制1. 父子节点关联逻辑当子节点被选中时if(subResult.size0){result.add(item.id);// 自动选中父节点// 合并子节点结果}父节点自动被标记为选中子结果集通过forEach合并到父级结果2. 多层级数据穿透// 从根节点到最深层子节点的递归穿透constsubResultcollectAllParents(item.children,checkedKeys);实现自底向上的结果收集确保所有父节点都被正确标记五、条件判断逻辑1. 当前节点选中判断if(checkedKeys.has(item.id))result.add(item.id);直接判断当前节点是否在选中列表2. 子节点结果判断if(subResult.size0){...}通过子结果集的大小判断是否存在被选中的子节点六、 核心知识点递归遍历每层涉及的变量值是相互独立的在每一层收集之后进行合并整合
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人网站的建设参考文献常州高端网站建设公司

证券分析师研报速读神器:Anything-LLM摘要与提问功能 在金融研究的世界里,时间就是信息差。一位资深证券分析师每天可能要面对来自各大券商的十几份深度研报——每份动辄三四十页,涵盖行业趋势、公司财务、竞争格局和盈利预测。传统的阅读方式…

张小明 2026/1/9 17:40:36 网站建设

北京的招聘网站有哪些办公室装修一般价格

TensorRT对Sparse Transformer的支持现状 在大模型时代,Transformer架构已成为自然语言处理和多模态任务的基石。然而,随着BERT、T5、LLaMA等模型参数量不断突破十亿甚至千亿级别,推理效率问题日益凸显:高延迟、显存溢出、吞吐受…

张小明 2026/1/10 9:28:50 网站建设

二手手机回收网站开发国际网站如何做seo

鸿蒙 PC 深度体验报告:从开箱到开发,一名开发者的全方位实测 作为长期关注国产开源技术的开发者,此次有幸通过 AtomGit 与华为 PC 部门的合作,获得鸿蒙 PC 的体验资格。从开箱激活到系统调试,再到开发者工具实测&…

张小明 2026/1/10 9:28:53 网站建设

佛山知名网站建设公司优改网logo设计

Python应用封装解决方案:图形化打包工具深度解析 【免费下载链接】auto-py-to-exe Converts .py to .exe using a simple graphical interface 项目地址: https://gitcode.com/gh_mirrors/au/auto-py-to-exe 在Python开发领域,将脚本转换为独立可…

张小明 2026/1/10 9:28:54 网站建设

东阳便宜营销型网站建设二手房网站开发

ElasticJob云原生部署终极指南:分布式任务调度的完整解决方案 【免费下载链接】shardingsphere-elasticjob 项目地址: https://gitcode.com/gh_mirrors/shar/shardingsphere-elasticjob 在当今云原生技术快速发展的背景下,如何将分布式任务调度框…

张小明 2026/1/10 9:42:16 网站建设

网站下载视频方法做企业的网站都要准备什么东西

如何在Vivado中正确导入外部VHDL文件?一文讲透工程集成全流程你有没有遇到过这种情况:辛辛苦苦写好的VHDL模块,复制到Vivado工程里却“看不见”?综合时报错“Entity not found”,仿真时信号全红,折腾半天才…

张小明 2026/1/10 9:42:22 网站建设