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()));
}
}
}
}
}
相关推荐
这个VI可能是用于初始化或构建树形结构的,它可能负责加载数据到树形控件中,根据特定的索引或数据结构建立节点层次。 4. **Get All.vi、Get Children.vi、Get Siblings.vi、Get Parent.vi** 这些VIs分别用于获取...
Oracle数据库在处理树形结构数据时提供了强大的递归查询功能,这种特性对于组织结构、产品分类、层级菜单等场景的应用非常广泛。递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的...
4. **操作方法**:这些可能包括插入新节点、删除特定节点、查找节点、更新节点值等。为了保证效率,这些操作通常需要设计得尽可能高效。 5. **可视化**:对于3D数据,可能还需要支持树的可视化功能,这可能涉及将树...
栈是一种后进先出(LIFO)的数据结构,常用于函数调用和表达式求值。队列则采用先进先出(FIFO)原则,适用于任务调度和消息传递。树形结构如二叉树、红黑树、AVL树等,广泛应用于搜索和排序。图数据结构则用于表示...
通过这种层级关系,树形数据结构能够有效地模拟现实世界中的许多问题,如文件系统的目录结构、组织结构图等。 树的建立通常涉及到创建节点和设置它们之间的父子关系。在编程中,这可以通过定义一个节点类来实现,该...
在JavaScript编程中,树形结构是一种非常常见的数据结构,它模拟了自然界中的树,由节点(也称为顶点)和边组成。在这个场景下,我们讨论的是如何使用递归方法来构建和操作树形结构,无论是普通的写法还是基于对象的...
5. **堆**:堆是一种特殊的树形数据结构,通常要求父节点的键值大于或小于其子节点。大顶堆常用于优先队列,小顶堆常用于实现高效的排序算法如堆排序。 6. **散列表(哈希表)**:通过散列函数将元素映射到固定大小...
使用DOM操作,如`document.createElement`和`appendChild`,根据树形数据生成HTML结构。你可以使用递归函数来遍历树的层级,并为每个节点创建一个`<li>`元素,如果该节点有子节点,则再创建一个`<ul>`元素。 3. *...
在SQL数据库中,树形数据结构是一种常见的非关系型数据模型,它用于表示层次关系或具有父子关系的数据。本示例由Jet Wang最新整理,旨在帮助我们理解和掌握如何在SQL中处理这种类型的数据。以下是对SQL树形数据处理...
2. **树形数据结构**:包括二叉树、平衡树(如AVL树、红黑树)和堆(如最大堆、最小堆)。二叉树是每个节点最多有两个子节点的树,常用于搜索和排序;平衡树通过保持左右子树高度差不超过1来保证搜索效率;堆通常...
栈是一种后进先出(LIFO)的数据结构,常用于表达式求值、函数调用和内存管理。队列则是先进先出(FIFO)的数据结构,适用于任务调度和数据缓冲。 五、树 树是一种非线性数据结构,由节点和边构成。每个节点可以有...
以下是一个基本的树形结构节点对象定义: ```javascript function TreeNode(name, children = [], isOpen = false) { this.name = name; this.children = children; this.isOpen = isOpen; } ``` 接着,我们...
在Unity3D游戏开发中,树形结构是一种常见的数据组织方式,它被广泛应用于场景管理、组件系统、物理系统以及用户界面(UI)设计等多个领域。在这个“树形结构(1).zip”压缩包中,可能包含的是一个关于如何在Unity中...
在数据库设计中,树形结构是一种常见的数据组织方式,它被广泛应用于表示层次关系,例如组织结构、分类系统等。本文以食品族谱为例,探讨如何在关系型数据库中存储和操作树形结构数据。 首先,最基本的树形结构设计...
5. **树**:树形数据结构由节点和边构成,每个节点可能有零个或多个子节点。二叉树是最常见的树类型,还有二叉查找树、平衡二叉树(如AVL树和红黑树)等,它们在搜索、排序等领域有广泛应用。 6. **图**:图是由...
当我们处理树形数据时,正确地显示层次和缩进是非常重要的,因为它直接影响到用户对数据结构的理解和使用体验。标题提到的“树形空格缩进bug已解决”意味着这个插件已经修复了一个关于缩进显示不正确的问题,这将使...
3. **栈和队列**:栈是一种后进先出(LIFO)的数据结构,常用于表达式求值、递归等;队列则是先进先出(FIFO)的数据结构,适用于任务调度、打印机队列等场景。 4. **树**:树形结构模拟了自然界中的层级关系,如...
在iOS开发中,树形结构是一种常见的数据组织方式,它以节点的形式呈现,每个节点可以有零个或多个子节点,这些子节点又可以有自己的子节点,形成一个层级关系。这种结构广泛应用于文件系统、数据解析(如XML、JSON)...
二叉树是最简单的树形结构,每个节点最多有两个子节点。AVL树是一种自平衡的二叉搜索树,确保任何节点的两个子树高度差不超过1,从而保证了查找、插入和删除操作的高效性。红黑树通过颜色规则保持了近似平衡,同样...
首先,数据结构的基本概念包括线性结构、树形结构、图结构和查找排序等。线性结构如数组、链表、栈和队列是我们学习数据结构的基石。数组是一种简单且广泛使用的线性结构,其元素在内存中是连续存放的,因此索引访问...