/*** 把嵌套树结构 Tree 转成 Graph 图结构** @param tree Tree* @return Graph*/public static GraphVO tree2graph(ItemVO tree) {List<EdgeDO> edgeList = new ArrayList<>();buildEdges(tree, edgeList);final List<ItemVO> nodeList = new ArrayList<>();visitTree(tree, t -> {ItemVO node = new ItemVO();BeanUtils.copyProperties(t, node);// 图节点,children 置为空node.children = new ArrayList<>();nodeList.add(node);});GraphVO graph = new GraphVO();graph.setEdgeList(edgeList);graph.setItemList(nodeList);return graph;}/*** 访问者模式,递归遍历树节点** @param t       树节点* @param visitor 访问者*/private static void visitTree(ItemVO t, TreeVisitor visitor) {visitor.visit(t);if (null != t.children) {for (ItemVO child : t.children) {visitTree(child, visitor);}}}

Kotlin 开发者社区

国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。

越是喧嚣的世界,越需要宁静的思考。

[递归+访问者模式]实现树状结构的节点遍历处理相关推荐

  1. 设计模式学习笔记(六) - 组合模式 Composite (树状结构专用模式)

    组合模式 Composite 树状结构专用模式   递归遍历结构

  2. Java递归子集算法(树状结构)的逻辑和实例代码实现 @杨章隐

    Java递归算法(树状结构)的逻辑和实例 1.应用场景: 递归算法作为一个经常使用的算法,无论在API开发还是计算文件夹都是比较常用的, 在api开发过程中我们经常遇到需要返回树状结构的json 例如 ...

  3. 系统管理模块_部门管理_设计(映射)本模块中的所有实体并总结设计实体的技巧_懒加载异常问题_树状结构...

    系统管理模块_部门管理_设计本模块中的所有实体并总结设计实体的技巧 设计实体流程 1,有几个实体? 一般是一组增删改查对应一个实体. 2,实体之间有什么关系? 一般是页面引用了其他的实体时,就表示与这 ...

  4. file类打印目录---树状结构,递归

    package Test; import java.io.File; /** * file类打印目录---树状结构,递归 * @author Administrator * */ public cla ...

  5. 实现树状结构_组合模式 - 树状结构的优雅实现

    在编程实践中,经常会遇到树状结构的场景,比如我们的浏览器窗口,比如文件系统. 那么,在处理树状结构的时候有什么较好的方式呢? 现在,我们就来学习一种利用组合模式的方法. 如上图所示,我们通过程序输出的 ...

  6. Stream流实现Tree树状结构无限递归

    Stream流实现Tree树状结构无限递归 场景:在使用mybatis plus操作多层数据格式,多层遍利操作影响数据查询效率 代码 例子:需要返回给前端多级菜单 省(直辖市)/市/区(县) /*** ...

  7. 数据库树状结构的关系表的删除方案

    所谓的树状结构的关系,即是记录之间有id,parentId关系的数据.场景是这样的:业务中用到了一张分享表,表里的主要字段有分享人,和被分享人,以及分享任务ID,可以通过一系列的分享构造成树状的结构, ...

  8. 从装备合成谈树状结构的应用

    源码下载: 链接: https://pan.baidu.com/s/1DucpIik596W1pkY09FjUew 提取码: n8mq 其中有个文件"类的功能介绍.txt",介绍了 ...

  9. 用中值排序基数法实现树状结构 (转)

    在BBS的编写中,经常有人问怎样实现树状结构?一个比较不负责任的回答是:使用递归算法.当然,递归是一个可行的办法 (二叉树的历遍也好象只能使用递归算法),但对于BBS来说,这样做势必要进行大量的Sql ...

最新文章

  1. 一些少见的下载地址(按需求更新)
  2. 数据结构与算法:二分法
  3. [Solved] UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xff in position 0: invalid start byte
  4. 长期价值三重进阶,同程艺龙加速“破局”OTA
  5. ccna学习笔记之五:路由器密码恢复
  6. python - 定时拍照并发送到qq
  7. 在ASP.NET Core中使用EPPlus导入出Excel文件
  8. 解决方案:超卖(Redis原子队列)
  9. py2neo database
  10. 鸿蒙官网什么样,鸿蒙系统推广,结果会怎么样?
  11. idhttp返回乱码_node.js http.get请求返回的中文乱码, iconv zlib模块都不好使,求解决!!!...
  12. BAT批处理整人代码
  13. 鼠标悬停在HTML-TABLE的某一行上 改变这一行的背景颜色
  14. 如何开展o2o营销活动?
  15. 电脑删除的文件如何找回?找回删除的文件有3个方法…
  16. 1002:方便记忆的电话号码
  17. 人工智能重新定义管理
  18. github新手入门
  19. 电子墨水屏标签:低功耗处理器技术
  20. 10.业余无线电术语

热门文章

  1. mmdetection-inference-画出bbox和mask
  2. ata计算机考试第一套,计算机ATA考试中级第一套试题配套素材.doc
  3. 【物联网树莓派毕设04】Arduino实现电梯及人脸识别门禁
  4. 阿piu传-文档批量上传客户端-原创力版使用帮助
  5. 计算机应用在医学领域有哪些,计算机在医学领域的应用|网络安全技术
  6. Java安装 jdk环境配置
  7. 指纹识别综述(10): 深度学习方法
  8. Physical CPU、Logical CPU、Core、Thread、Socket
  9. 高温高湿环境人体热负荷预警仿真模型
  10. 管理:身先士卒是必要的手段