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()));
}
}
}
}
}
相关推荐
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何...
数据结构算法演示(Windows版) 使 用 手 册 一、 功能简介 本课件是一个动态演示数据结构算法执行过程的辅助教学软件, 它可适应读者对算法的输入数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法...
[问题描述]建立一个二叉树,并对其进行4种遍历(前中后层)。 [要求] 使用递归和非递归,计算二叉树中节点的个数,树的深度等。...二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构
数据结构算法演示(Windows版) 使 用 手 册 一、 功能简介 本课件是一个动态演示数据结构算法执行过程的辅助教学软件, 它可适应读者对算法的输入数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法执行...
在计算机科学发展过程中,早期数据结构教材大都采用PASCAL语言为描述工具,后来出现了采用C语言为描述工具的教材版本、至今又出现了采用C++语言为描述工具的多种教材版本。本教实验指导书是为已经学习过C++语言的...
本程序中的数据采用“树形结构”作为其数据结构。具体采用的是“二叉排序树”。 二叉排序树(又称二叉查找树):(1)若左子树不空,则左子树上所有节点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有...
数据结构 闭散列法整数hash 开散列法整数hash 字符串hash 堆 二维树状数组 Trie树 二叉查找树 线段树 RMQ LCA+RMQ SB-Tree 数论 生成紧凑素数表 分解质因子 最大公约数 a^b mod n 扩张欧几里德算法 ...
3 数据挖掘的主要方法 1) 决策树法 决策树是一种对实例进行分类的树形结构,由节点和有向边组成。节点的类型 有2种:内部节点和叶子节点。内部节点一般表示一个特征或属性的测试条件,叶子节点 则表示一个分类。 ...
况发生概率的基础上,通过构成决策树来 求取净现值的期望值大于等于零的概率, 评价项目风险,判断其可行性的决策分析 方法,是直观运用概率分析的一种图解法, 它是建立在信息论基础之上对数据进行分 类的一种方法。 ...
数据结构:逻辑结构:级 2 数据之间存在的逻辑关系。如表、树、图、数组… 物理结构:数据在计算机内的存储方式,如顺序方式、链接方式… 数据库:人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以...
它使用矩形来表示系统中的子系统或功能模块,使用树形连线结构来表达系统所具有的功能层级关系。 (2)数据流模型。用于描述系统对数据的加工过程,其图形符号是一些具有抽象意义的逻辑符号,主要的图形符号包括:...
数据结构: 1.RMQ (区间最值,区间出现最大次数,求区间gcd) 2.二维RMQ求区间最大值 (二维区间极值) 3.线段树模板(模板为区间加法) (线段树染色) (区间最小值) 4.线性基 (求异或第k大) 5.主席树(静态求区间第k小) ...
实例031 用Switch语句根据消费金额计算折扣 41 实例032 判断用户输入月份的季节 42 2.4 循环控制 43 实例033 使用while与自增运算符循环遍历 数组 43 实例034 使用for循环输出杨辉三角 43 实例035 使用嵌套循环在...