博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)...
阅读量:7092 次
发布时间:2019-06-28

本文共 1178 字,大约阅读时间需要 3 分钟。

hot3.png

 本篇介绍的方法,参考了网上的代码。
在递归过程中,计算level,是受到了这种方法的启发。
 CSDN上有篇关于树的算法,目标是把一个无序的树,变成有序的。
 我看了下代码,并运行了下,感觉是可行的。 
我在想,既然可以把一棵树完整的遍历下来,那么应该可以知道每个节点的深度level。尝试了下,证明可行。
但是,我最终对比本篇的方法,和第5篇中的方法,基本一致。不同的地方是,这篇保存了遍历的顺序,实现了把无序的树变成有序的。
之所以第5篇和第6篇,分成2篇,是因为我自己原创的和借鉴别人的,还是分开比较好,但是最终“殊途同归” 。
// 向新list中装入根节点并递归子节点	public static List
traverseRootNode(List
treeList) { List
rootNode = TreeMenuUtil.findTopLevelList(treeList); for (int i = 0; i < rootNode.size(); i++) { level = 1; TreeNode root = rootNode.get(i); root.level = level; newList.add(root); sortNode(root, treeList); } return newList; } // 递归子节点 private static List
sortNode(TreeNode rootNode, List
treeList) { List
childList = TreeMenuUtil .findAllChild(rootNode, treeList); level++; if (childList != null) { int size = childList.size(); for (int i = 0; i < size; i++) { TreeNode treeNode = childList.get(i); newList.add(treeNode); treeNode.level = level; sortNode(treeNode, treeList); } } level--; return childList; }
原文首发:http://fansunion.cn/article/detail/574.html

转载于:https://my.oschina.net/jiutianniao/blog/400177

你可能感兴趣的文章
最锋利的jQuery源码、电子书及视频教程合集(共46个)
查看>>
JavaScript 内置对象!
查看>>
解决ubuntu下打不开rar文件
查看>>
内核启动过程
查看>>
在使用ibatis实现多条件模糊查询的语句
查看>>
童宁_下一代数据中心的安全挑战
查看>>
android 3g状态及信号监测
查看>>
开源 java CMS - FreeCMS2.8 站点管理
查看>>
JSP中include指令和include行为区别
查看>>
关于zend studio 9.0版本汉化
查看>>
java web编程学习6
查看>>
CSS学习笔记——最基础的定义与使用
查看>>
形象的网络状况工具
查看>>
linux下mysql的root密码忘记解决方法
查看>>
Test
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
范围分为
查看>>
一致性Hash算法(Consistent Hash)
查看>>
update the drawPictures
查看>>
Java中throw和throws的区别
查看>>