JTree,如何用递归算法构建树

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JTree,如何用递归算法构建树相关的知识,希望对你有一定的参考价值。

数据库结构是:
节点号(String) 节点显示名(String) 父节点号(String)
ID Name ParentID

根节点的父节点号为null。
帮忙写个递归方法吧。

参考技术A public void addChild(DefaultMutableTreeNode fatherNode,int fatherId)
List<Map>list=codeservices.getAssetCode( fatherId);
for(Map map:list)
DefaultMutableTreeNode child=new DefaultMutableTreeNode((String)map.get("TYPENAME"));
int id=Integer.parseInt((String)map.get("TYPEID"));
fatherNode.add(child);
addChild(child,id);



其中list是从数据库获取的所有节点,fatherNode是根节点,fatherid是父id,后面的id是自身节点id

如何用java递归生成带children的json串啊?数据集已经有了在下面。

如题对应的字段如下,大侠帮帮忙啊 ! (其中children是那些lft,rgt值中间的一些菜单,depth是该菜单的深度,code不用考虑)
------------------------------ id, menu_Name ,lft,rgt,m_code,depth
Depart dept1= new Depart(1, "ELECTRONICS", 1, 20, "code", 0); Depart dept2= new Depart(2, "TELEVISIONS", 2, 9, "code", 1); Depart dept3= new Depart(3, "TUBE", 3, 4, "code", 2); Depart dept4= new Depart(4, "LCD", 5, 6, "code", 2); Depart dept5= new Depart(5, "PLASMA", 7, 8, "code", 2); Depart dept6= new Depart(6, "PORTABLE ELECTRONICS", 10, 19, "code", 1); Depart dept7= new Depart(7, "MP3 PLAYERS", 11, 14, "code", 2); Depart dept8= new Depart(8, "FLASH", 12, 13, "code", 3); Depart dept9= new Depart(9, "CD PLAYERS", 15, 16, "code", 2); Depart dept10= new Depart(10, "2 WAY RADIOS", 17, 18, "code", 2);

"items": [
"children":[

"children": [

"children": [children。。。。。],//递归即可

"text": "TELEVISIONS"


"children": [

"children": [children。。。。。],//递归即可

"text": "PORTABLE ELECTRONICS"
]
],
text:'ELECTRONICS'
]

。。。。。略

参考技术A 不清楚你的业务需求。
1、数据存放在xml文件中,读取xml文件
2、json格式,如果你的数据有规律可循,可以用代码循环遍历
3、如果数据来自数据库,那么使用sql,一般的数据库都提供查询“树”的sql
参考技术B 使用simplejson这个开源项目包就行

以上是关于JTree,如何用递归算法构建树的主要内容,如果未能解决你的问题,请参考以下文章

C语言,如何用非递归方法输出二叉树的根到所有叶子路径?

重现二叉树非递归算法的构建过程

如何用java递归生成带children的json串啊?数据集已经有了在下面。

如何用java无限级树形结构的构建

递归与非递归求二叉树深度

全排列递归算法