`
zengshaotao
  • 浏览: 791563 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

计算树形数据结构的节点值

 
阅读更多

currlist = 全部的对象数据集;

List<LaborcostReport> notYeaflist = new ArrayList<LaborcostReport>();

        List<LaborcostReport> yeaflist = new ArrayList<LaborcostReport>();

        

        //分离叶子和非叶子节点

        currlist.forEach(qc->{

if(!"1".equals(qc.getYeafFlag())){

notYeaflist.add(qc);

}else{

yeaflist.add(qc);

}

});

        

        //算出非叶子节点的最大深度

        int treeDepth = 1;

        for(int i=0;i<notYeaflist.size();i++){

LaborcostReport lr = notYeaflist.get(i);

String nodePath = lr.getAccessors();

if(nodePath.split(",").length>treeDepth){

treeDepth = nodePath.split(",").length;

}

}

        

        //从非叶子树的最深处开始计算,计算非叶子节点的合计值

        for(int j = treeDepth; j>0 ;j--){

        for(int i=0;i<notYeaflist.size();i++){

    LaborcostReport lr = notYeaflist.get(i);

    String nodePath = lr.getAccessors();

    if(nodePath.split(",").length == j){

    //计算非叶子节点的值(所有的子节点相加)

    String menuId = lr.getMenuId();

    int tmp = currlist.size();

    for(int k = 0;k< tmp ;k++){

    LaborcostReport childNode = currlist.get(k);

    if(menuId.equals(childNode.getParentId())){

    //如果有多个节点,需要先取出,再相加

    lr.setManageIncomeYear(Arith.add(lr.getManageIncomeYear(),childNode.getManageIncomeYear()));

   

    }

    }

    }

    }

        }

分享到:
评论

相关推荐

    LABVIEW树形结构实例

    这个VI可能是用于初始化或构建树形结构的,它可能负责加载数据到树形控件中,根据特定的索引或数据结构建立节点层次。 4. **Get All.vi、Get Children.vi、Get Siblings.vi、Get Parent.vi** 这些VIs分别用于获取...

    Oracle递归树形结构查询功能

    Oracle数据库在处理树形结构数据时提供了强大的递归查询功能,这种特性对于组织结构、产品分类、层级菜单等场景的应用非常广泛。递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的...

    matlab开发-树形结构类

    4. **操作方法**:这些可能包括插入新节点、删除特定节点、查找节点、更新节点值等。为了保证效率,这些操作通常需要设计得尽可能高效。 5. **可视化**:对于3D数据,可能还需要支持树的可视化功能,这可能涉及将树...

    现代计算机常用数据结构和算法

    栈是一种后进先出(LIFO)的数据结构,常用于函数调用和表达式求值。队列则采用先进先出(FIFO)原则,适用于任务调度和消息传递。树形结构如二叉树、红黑树、AVL树等,广泛应用于搜索和排序。图数据结构则用于表示...

    数据结构 树 节点

    通过这种层级关系,树形数据结构能够有效地模拟现实世界中的许多问题,如文件系统的目录结构、组织结构图等。 树的建立通常涉及到创建节点和设置它们之间的父子关系。在编程中,这可以通过定义一个节点类来实现,该...

    javascript 写的 树形结构( 递归方法 )(普通写法跟对象写法)

    在JavaScript编程中,树形结构是一种非常常见的数据结构,它模拟了自然界中的树,由节点(也称为顶点)和边组成。在这个场景下,我们讨论的是如何使用递归方法来构建和操作树形结构,无论是普通的写法还是基于对象的...

    大学计算机专业课程—数据结构

    5. **堆**:堆是一种特殊的树形数据结构,通常要求父节点的键值大于或小于其子节点。大顶堆常用于优先队列,小顶堆常用于实现高效的排序算法如堆排序。 6. **散列表(哈希表)**:通过散列函数将元素映射到固定大小...

    js树形结构菜单

    使用DOM操作,如`document.createElement`和`appendChild`,根据树形数据生成HTML结构。你可以使用递归函数来遍历树的层级,并为每个节点创建一个`&lt;li&gt;`元素,如果该节点有子节点,则再创建一个`&lt;ul&gt;`元素。 3. *...

    sql树形数据处理示例(Jet wang 最新整理)

    在SQL数据库中,树形数据结构是一种常见的非关系型数据模型,它用于表示层次关系或具有父子关系的数据。本示例由Jet Wang最新整理,旨在帮助我们理解和掌握如何在SQL中处理这种类型的数据。以下是对SQL树形数据处理...

    华中科技大学计算机学院数据结构实验报告及源代码

    2. **树形数据结构**:包括二叉树、平衡树(如AVL树、红黑树)和堆(如最大堆、最小堆)。二叉树是每个节点最多有两个子节点的树,常用于搜索和排序;平衡树通过保持左右子树高度差不超过1来保证搜索效率;堆通常...

    计算机数据结构数据结构课件

    栈是一种后进先出(LIFO)的数据结构,常用于表达式求值、函数调用和内存管理。队列则是先进先出(FIFO)的数据结构,适用于任务调度和数据缓冲。 五、树 树是一种非线性数据结构,由节点和边构成。每个节点可以有...

    js树形结构的文件夹打开菜单代码

    以下是一个基本的树形结构节点对象定义: ```javascript function TreeNode(name, children = [], isOpen = false) { this.name = name; this.children = children; this.isOpen = isOpen; } ``` 接着,我们...

    树形结构(1).zip

    在Unity3D游戏开发中,树形结构是一种常见的数据组织方式,它被广泛应用于场景管理、组件系统、物理系统以及用户界面(UI)设计等多个领域。在这个“树形结构(1).zip”压缩包中,可能包含的是一个关于如何在Unity中...

    树形结构的数据库表Schema设计1

    在数据库设计中,树形结构是一种常见的数据组织方式,它被广泛应用于表示层次关系,例如组织结构、分类系统等。本文以食品族谱为例,探讨如何在关系型数据库中存储和操作树形结构数据。 首先,最基本的树形结构设计...

    大学计算机老师上课内部资料数据结构课件

    5. **树**:树形数据结构由节点和边构成,每个节点可能有零个或多个子节点。二叉树是最常见的树类型,还有二叉查找树、平衡二叉树(如AVL树和红黑树)等,它们在搜索、排序等领域有广泛应用。 6. **图**:图是由...

    bootstraptable-treeview树形,树形空格缩进bug已解决

    当我们处理树形数据时,正确地显示层次和缩进是非常重要的,因为它直接影响到用户对数据结构的理解和使用体验。标题提到的“树形空格缩进bug已解决”意味着这个插件已经修复了一个关于缩进显示不正确的问题,这将使...

    浙江大学计算机学院数据结构课件

    3. **栈和队列**:栈是一种后进先出(LIFO)的数据结构,常用于表达式求值、递归等;队列则是先进先出(FIFO)的数据结构,适用于任务调度、打印机队列等场景。 4. **树**:树形结构模拟了自然界中的层级关系,如...

    iOS 树形结构

    在iOS开发中,树形结构是一种常见的数据组织方式,它以节点的形式呈现,每个节点可以有零个或多个子节点,这些子节点又可以有自己的子节点,形成一个层级关系。这种结构广泛应用于文件系统、数据解析(如XML、JSON)...

    计算机 C++版数据结构课后答案 清华大学

    二叉树是最简单的树形结构,每个节点最多有两个子节点。AVL树是一种自平衡的二叉搜索树,确保任何节点的两个子树高度差不超过1,从而保证了查找、插入和删除操作的高效性。红黑树通过颜色规则保持了近似平衡,同样...

    计算机数据结构胶片ppt

    首先,数据结构的基本概念包括线性结构、树形结构、图结构和查找排序等。线性结构如数组、链表、栈和队列是我们学习数据结构的基石。数组是一种简单且广泛使用的线性结构,其元素在内存中是连续存放的,因此索引访问...

Global site tag (gtag.js) - Google Analytics