一个基于扩展: ChildPropertyTreeModel ,用递归实现的动态树. 自己花了点时间搞了个demo, 希望对后来学习的人有点帮助。 这里做一些内容的介绍:
1: 递归实现:parentId: 树的根节点: treeNode: 当前节点的父节点,如果不是父节点,就以treeNode最后加入的节点为父节点。 以下是代码:
public void generateTree(int parentId , TreeNode treeNode){
while(voi.hasNext()){
Row row = voi.next();
int pId= ((Number)row.getAttribute("ParentId")).intValue();
int id = ((Number)row.getAttribute("Id")).intValue();
String label=String.valueOf(row.getAttribute("NavLabel"));
TreeNode tempNode=new TreeNode("Node",label);
tempNode.setLevel(((Number)row.getAttribute("NavLevel")).intValue());
Map map=new HashMap();
map.put("NavLabel", label);
map.put("Id", id);
map.put("NavAction", row.getAttribute("NavAction"));
tempNode.setAttributes(map);
if(pId==parentId || treeNode==null){
trees.add(tempNode);
treeNode=tempNode;
}else if(pId == treeNode.getAttributes().get("Id")){
treeNode.getChildren().add(tempNode);
}else{
TreeNode[] nodes = (TreeNode[])treeNode.getChildren().toArray();
treeNode = nodes[nodes.length-1];
treeNode.getChildren().add(tempNode);
}
generateTree(parentId,treeNode);
}
2: navigation.sql 是数据库执行文件. 最终执行如下图:
- 大小: 14 KB
分享到:
相关推荐
本资源主要关注如何使用Java集合框架来递归实现一个通用的树结构,即`Tree`。下面我们将深入探讨这个主题。 首先,我们要了解Java集合框架。Java集合框架是Java语言提供的一组接口和类,用于存储和操作各种数据结构...
一个简单的小例子递归实现list按照index排序的树
本主题将深入探讨如何使用Java集合、JSP和JSTL来递归地创建并输出树形结构(Tree),特别是用于前端展示。 首先,我们要理解Java集合在构建树结构中的作用。在Java中,可以使用ArrayList、LinkedList或者自定义的...
非递归实现的基本思想是将递归调用转化为循环,并使用数据结构(如堆栈)存储中间结果,避免了递归带来的调用栈溢出问题。 非递归实现的步骤大致如下: 1. 初始化一个堆栈,用于保存待处理的阿克曼函数参数对`(m, ...
空间复杂度方面,非递归实现主要取决于分区操作和栈的使用,而递归实现则依赖于递归深度,一般情况下都是O(log n)。 在实际编程中,可以根据具体需求选择非递归或递归实现。非递归版本更适合内存有限或者递归深度...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R....总的来说,这个压缩包提供了一个非递归实现快速排序的完整示例,通过自定义栈的数据结构,实现了快速排序算法,适用于理解和学习快速排序的非递归实现方式。
通过以上分析,我们可以看到,阿克曼函数的非递归实现主要涉及堆栈操作、递归转换以及对计算复杂性的理解。这个话题对于学习数据结构和算法的学生来说,是一个挑战性的实践项目,有助于提升他们的编程技能和对复杂...
八皇后递归及非递归实现源码; 八皇后递归及非递归实现源码
C语言递归实现逆序程序 C语言初学者必会
### Java使用递归实现字符串反转 在Java编程语言中,递归是一种常用的方法来解决许多问题,特别是那些可以通过分解成更小子问题来解决的问题。本文将详细介绍如何使用递归来实现字符串的反转。 #### 一、递归基础...
根据给定的文件信息,我们可以总结出以下关于“递归实现回文判断”的知识点: ### 一、回文概念 回文是指一个字符串从左到右读和从右到左读都是一样的字符串。例如,“abcba”、“madam”等都是回文字符串。 ### ...
### 递归实现字符串逆序 #### 知识点概览 本文将详细介绍如何使用C++中的递归技术来实现字符串的逆序操作。逆序字符串是一个常见的编程问题,在多种场景下都有应用,例如文本处理、算法设计等。通过递归方法解决此...
总之,非递归的汉诺塔问题C++实现是一种创新的解决方案,它利用数据结构来避免递归调用的开销,展示了算法设计的灵活性和创造性。通过学习这种实现,你可以更深入地理解数据结构、算法以及它们在实际编程中的应用。
传统的实现方式通常使用递归算法,但这种方法可能会导致内存消耗过大,尤其是在菜单层级很深的情况下。本主题介绍了一种不依赖递归的高效方法来创建无限级树型菜单,具有快速加载的特点。 首先,我们来看`WriteXML....
使用C++非递归实现fibonacci数列,对正在学习算法的同学应该挺有帮助的
"MyBatis之自查询使用递归实现 N级联动效果" MyBatis是一个功能强大且灵活的持久层框架,它支持自查询和递归查询,下面我们将探讨如何使用MyBatis实现 N级联动效果。 递归查询 递归查询是指在一个查询中调用自身...
### 递归实现字符串反向输出 在计算机科学领域,递归是一种常用且重要的编程技巧。本文将通过一个具体的例子——使用C语言实现字符串的反向输出,来深入理解递归的基本概念及其应用。 #### 一、递归基础 递归...
非递归实现的最短哈密顿回路,用分支限界法优化,但速度不太理想。
二叉树的创建与三种遍历的递归与非递归实现 包括二叉树的动态创建,前序遍历,中序遍历,后续遍历的递归与非递归方法的实现。