`

分享zk Tree递归实现(只有分享,才能更有人气)

zk 
阅读更多

ZK 中的Tree可以实现递归调用,该方法可以实现无限级次的分类,如ERP中的物料分类,人力资源中的组织架构分级等.

1、数据库设计中一般如下:ID,NAME,parentid,level,其中parentid就是指上级的ID(parent--id)引用。

2、下面list就是第一层应查询出来的数据库列表,也是树的第一层数据。接下来就是创建列表的表头数据。 

public Tree createTree(String name, List<?> list) {
                Tree tree = new Tree();
                tree.setHeight("500px");
                Treecols treecols = new Treecols();
                Treecol treecol = new Treecol(name);
                treecol.setParent(treecols);
                treecols.setParent(tree);
               Treechildren firstChild = new Treechildren();

               //下面语句中的方法就递归调用的主要实现方法
                tree.appendChild(AddTreeItem(firstChild, list));
                return tree;
       }

3、递归实现方法

public Treechildren AddTreeItem(Treechildren child, List list) {  
  for (Iterator<?> iter = list.iterator(); iter.hasNext();) {

        //list数据转换为部门数据
        Depart depart = (Depart) iter.next();

        //通过部门ID获取下属部门列表数据
        List<?> row = getCompentList(depart.getFid());

        //创建树的行信息
        Treeitem firstItem = new Treeitem();
        firstItem.setValue(depart.getFid());
        Treerow firstRow = new Treerow();
        Treecell firstCell = new Treecell(depart.getFname());
        firstCell.setParent(firstRow);
        firstRow.setParent(firstItem);
        firstItem.setParent(child);

        //判断有下属部门,则创建第二层实现递归调用
         if (row.size() > 0){

             Treechildren secondchild = new Treechildren();
             firstItem.appendChild(AddTreeItem(secondchild, row));

             }
         }
      return child;
 }

4、在你的页面上这现实就可以了,调用这个方法。

public void refshTree() {
  unit_center.getChildren().clear();
  String name = new String("所有单位");
  unit_west.getChildren().clear();
  unit_tree.getChildren().clear();
  unit_tree = createTree(name, getDepartList());
  unit_tree.setParent(unit_west);
 }

分享到:
评论

相关推荐

    ZK树的递归实现

    在IT领域,ZK树(Zero-Knowledge Tree)是一种数据结构,主要用于处理和验证大量数据的零知识证明。这种树状结构允许一个实体向另一个实体证明它拥有某些信息,而无需透露任何具体信息本身,从而保护了数据的隐私。...

    用Java集合递归实现通用树Tree

    本资源主要关注如何使用Java集合框架来递归实现一个通用的树结构,即`Tree`。下面我们将深入探讨这个主题。 首先,我们要了解Java集合框架。Java集合框架是Java语言提供的一组接口和类,用于存储和操作各种数据结构...

    java递归实现树(Tree)

    一个简单的小例子递归实现list按照index排序的树

    ackermann函数的递归实现和非递归实现

    由于阿克曼函数的递归深度可能非常深,因此非递归实现通常是更有效的方法,特别是当使用堆栈来模拟递归调用时。非递归实现的基本思想是将递归调用转化为循环,并使用数据结构(如堆栈)存储中间结果,避免了递归带来...

    tree递归.rar

    为了更好地理解和利用这个示例,你需要解压"tree递归.rar",查看源代码,并了解其中的注释。通过学习这个示例,你可以掌握递归遍历树结构的基本技巧,这将对你的编程技能大有裨益。同时,这个例子还涉及到数据库操作...

    Tree使用递归显示

    至于文件“Tree递归”,可能包含了实现这个功能的代码示例,例如C#或VB.NET的源文件。文件内容可能包括数据库连接字符串、SQL查询语句、递归函数的定义以及其他辅助方法,如将数据集转换为树节点集合等。 总的来说...

    递归实现的 ADF Dynamic tree

    本文将深入探讨如何使用递归实现ADF(Attribute Dependency Framework)动态树。ADF动态树是一种数据结构,它能够根据特定规则自动生成或调整树状结构,常用于数据建模、图形用户界面设计或解析复杂数据结构。 首先...

    快速选择非递归与递归算法实现

    非递归版本更适合内存有限或者递归深度受限的场景,而递归版本则代码简洁,易于理解。 以上就是关于快速选择算法的非递归和递归实现的详细介绍。通过合理地选取基准和适当的数据结构,快速选择算法可以在大数据集上...

    tree easyui java 树递归

    "tree easyui java 树递归"这个主题涉及到的就是如何在Java环境下利用EasyUI库创建一个树形结构,并通过SpringMVC框架与数据库进行交互。下面将详细阐述相关知识点。 首先,EasyUI是一个基于jQuery的UI组件库,提供...

    两种mysql递归tree查询效率-mysql递归tree

    ### 两种MySQL递归Tree查询效率分析 #### 一、背景与目的 在数据库操作中,经常需要处理具有层级结构的数据。例如,在处理组织结构、文件系统或是地区划分时,通常会采用递归的方式来查询这些层级关系。MySQL作为...

    快速排序 --- 非递归实现

    快速排序非递归实现的优点包括避免了递归带来的系统栈空间开销,对于大数据量排序更有效。同时,由于使用了栈,其时间复杂度依然保持为O(n log n),在平均情况下表现优秀。但缺点是在最坏的情况下,如果输入数组已经...

    jsp jstl 递归 输出树 Tree 后台 Java 集合 递归 实现通用 树Tree

    为了实现递归,我们需要一个方法,该方法接收当前节点作为参数,并遍历其所有子节点,对每个子节点调用自身,直到没有更多的子节点为止。 以下是一个简单的Java代码示例,展示了如何使用递归来遍历树结构: ```...

    阿克曼函数非递归实现

    阿克曼函数是一种著名的计算上界递归函数,它在理论计算机科学中有着重要的地位,尤其是在探讨递归和计算复杂性的领域。这个函数是不可计算的,也就是说,它不能通过有限步骤的算法来解决,但是可以通过其他方法如...

    八皇后递归及非递归实现源码

    八皇后递归及非递归实现源码; 八皇后递归及非递归实现源码

    递归实现回文判断

    根据给定的文件信息,我们可以总结出以下关于“递归实现回文判断”的知识点: ### 一、回文概念 回文是指一个字符串从左到右读和从右到左读都是一样的字符串。例如,“abcba”、“madam”等都是回文字符串。 ### ...

    递归实现字符串逆序

    根据给定的代码示例,我们可以看到有两种不同的递归方法实现字符串逆序: 1. **基于索引的方法**(`Reverse(string&s, int index)`) 2. **无参数的方法**(`Reverse(string&s)`) ##### 基于索引的方法 ```cpp ...

    java 用递归实现字符串反转

    ### Java使用递归实现字符串反转 在Java编程语言中,递归是一种常用的方法来解决许多问题,特别是那些可以通过分解成更小子问题来解决的问题。本文将详细介绍如何使用递归来实现字符串的反转。 #### 一、递归基础...

    C语言递归实现逆序程序

    C语言递归实现逆序程序 C语言初学者必会

    不用递归实现的无限级树型菜单

    传统的实现方式通常使用递归算法,但这种方法可能会导致内存消耗过大,尤其是在菜单层级很深的情况下。本主题介绍了一种不依赖递归的高效方法来创建无限级树型菜单,具有快速加载的特点。 首先,我们来看`WriteXML....

    PHP递归生成TREE

    在给定的场景中,`tree.php` 文件很可能是实现递归生成树结构的PHP代码。这个文件可能包含一个函数,该函数接受一个数组(通常是数据库查询结果),然后通过递归地遍历这个数组来构建一个多级的树。每个数组元素代表...

Global site tag (gtag.js) - Google Analytics