知道树状结构和子节点的ID,怎么统计各个层级的数量
时间: 2024-02-17 10:05:36 浏览: 21
如果你有树状结构数据的子节点ID,可以使用递归算法来统计各个层级的数量。以下是一个简单的示例代码:
```python
def count_nodes(tree, parent_id, level, level_counts):
# 统计当前层级的节点数量
if level not in level_counts:
level_counts[level] = 1
else:
level_counts[level] += 1
# 递归遍历子节点
for node in tree[parent_id]:
count_nodes(tree, node, level+1, level_counts)
return level_counts
```
其中,`tree`是一个字典,存储了树状结构数据的父子节点关系,例如:
```
tree = {
1: [2, 3],
2: [4, 5],
3: [6]
}
```
表示节点1的子节点是2和3,节点2的子节点是4和5,节点3的子节点是6。
`parent_id`是当前节点的ID,`level`是当前节点所在的层级,`level_counts`是一个字典,存储各个层级的节点数量。
递归遍历子节点时,通过`count_nodes`函数来递归处理子节点,同时将当前层级加1,并更新`level_counts`字典。
最终,函数返回`level_counts`字典,其中存储了各个层级的节点数量。