You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

递归实现父节点生成子节点的图结构方法及代码示例

三维坐标层级递归图结构实现

生成规则

  • 起始根节点为坐标[0,0,0]
  • 每个父节点生成3个子节点:分别将坐标的三个维度值各加1,例如父节点[1,0,0]对应子节点[2,0,0]、[1,1,0]、[1,0,1]
  • 迭代生成到指定轮次后终止
  • 基于已有的child_generator_2函数实现,保留原有代码的迭代框架

原有代码逻辑缺陷

  • 迭代逻辑仅沿单分支向下生成,没有遍历同层所有父节点,会漏掉大部分分支节点
  • 浅拷贝节点对象会导致引用错位,修改副本的子节点属性无法同步到原始树结构
  • 层级参数传递错位,子节点生成时传入的层级值和实际迭代轮次不匹配

修正后实现代码

import numpy
import copy

# 业务参数按实际场景赋值
max_level = 5  # 最大迭代轮次
p = [0]*4      # 原代码传入的业务参数,len(p)-1为坐标维度
a = None       # 原代码传入的业务参数
dim = len(p) - 1

# 初始化根节点(第0层,坐标[0,0,0])
tau = list(numpy.zeros(dim))
_, root = child_generator_2(dim, 1, p, a, tau)

current_level_nodes = list(root.children)
current_level = 1

# 逐层迭代生成,直到达到最大层数
while current_level < max_level:
    next_level_nodes = []
    l = 0
    # 保留原代码的索引while遍历结构
    while l < len(current_level_nodes):
        node = current_level_nodes[l]
        _, temp_parent = child_generator_2(dim, current_level + 1, p, a, node.name)
        node.children = temp_parent.children
        next_level_nodes.extend(list(node.children))
        l += 1
    # 移动到下一层
    current_level_nodes = next_level_nodes
    current_level += 1

# 变量root即为完整生成的图结构根节点

内容的提问来源于stack exchange,提问作者Nicola Alimonda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:51:19