今天一个同事做,可变更目录结构时,遇到的计算当前节点包括节点下面一共多少级怎么做,这里写一个两个函数互相递归调用的方法。
如果节点过多,会一直压栈出栈,对栈空间压力大,所以建议,每个节点级数存到key-value缓存中,每次更新时,刷新缓存
计算当前节点,包含多少级
1.如果没有子节点,默认1级
2.有子节点,且只有一层,为2级,以此递推
如图:
/**
* 获取当前节点包含多少级,如果没有子节点-默认1级
* @param node
* @return
*/
public int getContainLevelNum(int node) {
List<Integer> list = findChildNodeList(node);
if(CollectionUtils.isEmpty(list)) {
return 1;
} else {
return 1 + getMaxContailLevelNum(list);
}
}
/**
* 获取当前节点子节点List集合
*/
public List<Integer> findChildNodeList(int id) {
return null;
}
/**
* 获取list中包含层级最多的层级数目
* @param list
* @return
*/
public int getMaxContailLevelNum(List<Integer> list) {
int maxNum = 0;
for (Integer id : list) {
int currNum = getContainLevelNum(id);
maxNum = currNum > maxNum ? currNum : maxNum;
}
return maxNum;
}
- 大小: 5 KB
分享到:
相关推荐
java实现树父节点递归获取树子节点 工具类,以后再项目中直接用即可
springJpa单标递归树形结构
本文实例讲述了js 递归json树实现根据子id查父id的方法。分享给大家供大家参考,具体如下: 最近做了一个类似用js实现思维导图的功能,作为思维导图,一定会有树状结构的数据产生,在操作里面的节点时会经常需要查找...
oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的。这篇文章给大家介绍了Oracle递归树形结构查询功能,需要的朋友参考下
在菜单File中选择Open弹出对话框,选择好路径之后,点击send按钮,会动态的改变主节点的名字~~~
递归找到当前的节点呈现树形菜单结构,所有的信息存储在一个表中 递归遍历所有节点信息 依次展示所有子节点
下面小编就为大家带来一篇使用递归删除树形结构的所有子节点(java和mysql实现)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
* 基于链表实现树结构 */ package dsa; public class TreeLinkedList implements Tree { private Object element;//树根节点 private TreeLinkedList parent, firstChild, nextSibling;//父亲、长子及最大的...
当初花了很长时间查资料、逛博客 终于搞定的排序 以及对于处理菜单列表显示的 问题。希望对你们有帮助。压缩包包含数据表创建脚本 以及 实现功能的语句 表结构字段 id、name、url、pid、indexs
sqlserver递归查询树结构的表的根结点子最里层的子结点
该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。
java语言实现的二叉树的各种操作(包括递归与非递归遍历二叉树,求二叉树的高度,节点总数,叶子节点等)
该方法通过递归调用实现对树结构的动态添加节点和子节点,在项目中非常实用!!
所谓二叉排序树,简而言之,是一个每个节点可指向 0、1 或 2 个节点的递归的数据结构。最上层的一个节点称为树根。二叉排序树服从凡是比当前节点小的值都在其左下方,比当前节点大的值都在其右下方的规律。该规律...
-- 用SQL Server取得树节点路径, 不用递归算法,不用游标,没有层次限制, 速度很快 -- 显示、打印用起来很方便的 -- print dbo.GetDeptPath('5cb3c3ee-4b2b-4005-8037-bb3876663d2e','->') -- select * from Dept
js代码-树节点的递归遍历
1.悬浮层树(Tree) 这种树结构实现类似面包屑导航功能,监听的是节点鼠标移动的事件,然后在节点下方或右方显示子节点,依此递归显示子节点的子节点。 用户首页博客设置文章相册留言评论系统 这里要注意几个小问题,...
主要给大家介绍了关于Oracle如何通过递归查询父子兄弟节点的相关资料,递归查询对各位程序员来说应该都不陌生,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
在Java程序中构建一个菜单树,将根节点root放到request中 然后在JSP页面中通过JSP递归调用显示菜单树
用三层实现 1.递归加载数据库中的父子关系表(数据在DBData文件夹下) 主窗体有建表sql 2.输出模糊字符串,在树控件中递归查找所有包含该文字的节点, 以红色显示并让该节点可见