简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)
2014-12-21 03:50
323 查看
本篇介绍的方法,参考了网上的代码。
在递归过程中,计算level,是受到了这种方法的启发。
CSDN上有篇关于树的算法,目标是把一个无序的树,变成有序的。
我看了下代码,并运行了下,感觉是可行的。
我在想,既然可以把一棵树完整的遍历下来,那么应该可以知道每个节点的深度level。尝试了下,证明可行。
但是,我最终对比本篇的方法,和第5篇中的方法,基本一致。不同的地方是,这篇保存了遍历的顺序,实现了把无序的树变成有序的。
之所以第5篇和第6篇,分成2篇,是因为我自己原创的和借鉴别人的,还是分开比较好,但是最终“殊途同归” 。
原文首发:http://fansunion.cn/article/detail/574.html
在递归过程中,计算level,是受到了这种方法的启发。
CSDN上有篇关于树的算法,目标是把一个无序的树,变成有序的。
我看了下代码,并运行了下,感觉是可行的。
我在想,既然可以把一棵树完整的遍历下来,那么应该可以知道每个节点的深度level。尝试了下,证明可行。
但是,我最终对比本篇的方法,和第5篇中的方法,基本一致。不同的地方是,这篇保存了遍历的顺序,实现了把无序的树变成有序的。
之所以第5篇和第6篇,分成2篇,是因为我自己原创的和借鉴别人的,还是分开比较好,但是最终“殊途同归” 。
// 向新list中装入根节点并递归子节点 public static List<TreeNode> traverseRootNode(List<TreeNode> treeList) { List<TreeNode> 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<TreeNode> sortNode(TreeNode rootNode, List<TreeNode> treeList) { List<TreeNode> 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
相关文章推荐
- 简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)
- 简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)
- 简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)
- 简洁常用权限系统的设计与实现(五):不维护节点的深度level,手动计算level,构造树
- 简洁常用权限系统的设计与实现(五):不维护节点的深度level,手动计算level,构造树
- 简洁常用权限系统的设计与实现(五):不维护节点的深度level,手动计算level,构造树
- 简洁常用权限系统的设计与实现(五):不维护节点的深度level,手动计算level,构造树
- 简洁常用权限系统的设计与实现(三):维护和利用节点的深度level,迭代实现树的构造
- 简洁常用权限系统的设计与实现(三):维护和利用节点的深度level,迭代实现树的构造
- 简洁常用权限系统的设计与实现(三):维护和利用节点的深度level,迭代实现树的构造
- 简洁常用权限系统的设计与实现(三):维护和利用节点的深度level,迭代实现树的构造
- 简洁常用权限系统的设计与实现(四):不维护level,用递归方式构造树
- 设计与实现的简单和经常使用的权限系统(五岁以下儿童):不维护节点的深度level,手工计算level,树形结构
- 简洁常用权限系统的设计与实现(四):不维护level,用递归方式构造树
- 简洁常用权限系统的设计与实现(四):不维护level,用递归方式构造树
- 简洁常用权限系统的设计与实现(四):不维护level,用递归方式构造树
- 简洁常用权限系统的设计与实现(一):构造权限菜单树的N(N>=4)种方法
- 简洁常用权限系统的设计与实现(一):构造权限菜单树的N(N>=4)种方法
- 简洁常用权限系统的设计与实现(一):构造权限菜单树的N(N>=4)种方法
- 简洁常用权限系统的设计与实现(七):一种错误的不可行的构造树的方法