递归算法解析成树形结构

/**
     * 递归算法解析成树形结构
     *
     * @param cid
     * @return
     * @author jiqinlin
     */
    public TreeNodeModel recursiveTree(int org_code) {
        //根据cid获取节点对象(SELECT * FROM tb_tree t WHERE t.cid=?)
        MiddleOrgEntity middleOrgEntity = new MiddleOrgEntity();
        middleOrgEntity.setTableName(TableConstants.EWX_MIDDEL_ORG);
        middleOrgEntity.setOrg_code(org_code);
        middleOrgEntity = (MiddleOrgEntity) commonService.selectOneByExample(middleOrgEntity);

        TreeNodeModel treeNodeModel = new TreeNodeModel();
        treeNodeModel.setOrg_code(org_code);
        treeNodeModel.setOrg_name(middleOrgEntity.getOrg_name());
        //TreeNodeModel node = personService.geTreeNodeModel(cid);

        //查询cid下的所有子节点(SELECT * FROM tb_tree t WHERE t.pid=?)
        MiddleOrgEntity entity = new MiddleOrgEntity();
        entity.setTableName(TableConstants.EWX_MIDDEL_ORG);
        entity.setParent_org_code(org_code);
        List<MiddleOrgEntity> middleOrgEntityList = commonService.selectListByExample(entity);

        //List childTreeNodeModels = personService.queryTreeNodeModel(cid);

        //遍历子节点
        for(MiddleOrgEntity child : middleOrgEntityList) {

            TreeNodeModel n = recursiveTree(child.getOrg_code()); //递归
            treeNodeModel.getNodes().add(n);
        }

        return treeNodeModel;
    }
时间: 2024-12-28 01:53:54

递归算法解析成树形结构的相关文章

解析java树形结构

思路一: 1.准备表结构及对应的表数据a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHAR2(50), PID NUMBER //父节点 ) b.表数据: insert into tb_tree (CID, CNAME, PID) values (1, '中国', 0); insert into tb_tree (CID, CNAME, PID) values (2, '北京市', 1); insert into tb_

Java递归算法构造JSON树形结构

1.前言 最近项目中有一个需求,数据库中的菜单表是一个常见的id-pid结构,需要把它构建成树形的JSON格式发送给第三方,写出来之后感觉也是很简单的,核心代码只有5行,重要的是思路要明确,这里把源码分享给大家. 工程里面使用了json-lib.jar这个包,作用是将List序列化成JSON. 2.源码 package com.agileai.esb.smc.domain; import java.util.*; import net.sf.json.JSONArray; public clas

记一则 Lambda内递归调用方法将集合对象转换成树形结构

public dynamic GetDepartments(string labID) { List<int> usedIDs = new List<int>(); //缓存已用过的ID //定义递归算法 Func<object,List<DepartmentItem>, List<DepartmentItem>, dynamic> recursion = (r,d,a) => { List<dynamic> dyData =

10,组合模式(Composite Pattern)是将对象组合成树形结构以表示“部分--整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性。

Composite模式也叫组合模式,是构造型的设计模式之一.通过递归手段来构造树形的对象结构,并可以通过一个对象来访问整个对象树. Component (树形结构的节点抽象) - 为所有的对象定义统一的接口(公共属性,行为等的定义) - 提供管理子节点对象的接口方法 - [可选]提供管理父节点对象的接口方法  Leaf (树形结构的叶节点) Component的实现子类  Composite(树形结构的枝节点) Component的实现子类 适用于: 单个对象和组合对象的使用具有一致性.将对象组

使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)

使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码) 对于C#来说,取得活动目录中的组织结构相对简单,因为其在System.DirectoryServices命名空间中内置了DirectorySearcher的方法,我们可以组合多种过滤方式,来达到取得活动目录中的所有信息,当然,我现在还没有找到可以得到域用户密码的方式 :) 以下是关键片段 1private static SearchResultCollection _ADHelp

c# List列表数据转换成树形结构

把List列表结构 转换成树形结构 /// <summary> /// 构造树形Json /// </summary> public static class TreeJson { /// <summary> /// 转换树Json /// </summary> /// <param name="list">数据源</param> /// <param name="parentId">

Word排版成树形结构技巧

初始文字 A A1 A2 B1 B1 B2 C C1 希望效果 关健设置

Java创建树形结构算法实例

在JavaWeb的相关开发中经常会涉及到多级菜单的展示,为了方便菜单的管理需要使用数据库进行支持,本例采用相关算法讲数据库中的条形记录进行相关组装和排序讲菜单组装成树形结构. 首先是需要的JavaBean 1 2 3 import java.io.Serializable; 4 import java.util.ArrayList; 5 import java.util.Collections; 6 import java.util.Comparator; 7 import java.util.

树形结构应用

一切具有集合特性的事物都可以抽象成树形结构,例如表格是一个具有行集合与列集合的大集合,其实现方式也可以用树形结构来表示. SNMP简单网络管理协议的mib就是一棵层级树,它定义了用oid.0访问的普通叶子节点和用列节点oid.(行)index访问的表格节点,表节点名称通常用Table作为后缀,表节点下的列集合节点名称通常用Entry作为后缀,而列节点名称则各不相同,不过也有些专有后缀比如RowStatus.SNMP是如何用树形结构来表示表格的呢?其实它就是通过给列节点下的元素设置index索引的