项目开发-树形层级结构中的数量统计

在项目开发中,面对具有无限深度的树形层级结构菜单,如何统计每个节点下的记录总数是一个挑战。传统的双层循环方法不再适用,递归成为解决这类问题的关键。通过递归遍历树形结构,并利用全局Map存储中间结果,可以有效地统计各菜单项的数量。此方法适用于JavaScript、PHP和Java等编程语言。
摘要由CSDN通过智能技术生成

        项目开发中。有一 菜单的树形结构展示时,须要统计各个菜单下记录的总数。通常假设树形结构的深度为2(仅仅有两级菜单的话),使用for循环统计没有问题。可是假设树形菜单的深度没有限制,就不能通过两次for循环来实现统计了,仅仅能借助递归来统计了,使用一个全局map记录每次统计的值。简单实现例如以下:

       具有层级结构的元素Source类,省略getter/setter:

public class Source {
	private Source parent;
	private String id;
	private String name;
	private List<Source> children;
}
      统计方法。仅仅须要层级结构的根元素,就可以完毕各个菜单子元素的统计:

import java.util.List;
import java.util.Map;

public class SourceCountUtil {
	/**
	 * 树形结构展示的某个节点的统计数值=孩子总数+孩子的孩子总数
	 * @param root
	 * @param result
	 * @return
	 */
	public static int doCount(Source root,Map<String,Object> result){
		int count = 0;
		List<Source> list = root.g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值