Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何从给定的父子列表创建树,但子节点可以';不能在其父节点之前创建?_Algorithm_Tree_Depth First Search_Breadth First Search - Fatal编程技术网

Algorithm 如何从给定的父子列表创建树,但子节点可以';不能在其父节点之前创建?

Algorithm 如何从给定的父子列表创建树,但子节点可以';不能在其父节点之前创建?,algorithm,tree,depth-first-search,breadth-first-search,Algorithm,Tree,Depth First Search,Breadth First Search,包含父项和子项的列表。这里根节点的父节点是-1。我必须从这里创建一棵树,但任何子节点都不能在其父节点之前创建 父子列表 3 7 3 6 2 5 -1 1 2 4 1 2 1 3 以下算法将起作用: 初始化映射从整数到列表/数组[Integer]。这里,键表示父项,列表/数组[整数]表示子项 迭代上述父子列表。对于每个条目,填充步骤1中创建的Map。 i、 e.对于问题中提到的示例,Map将如下所示: -1 -> [1] 1 -> [2, 3] 2 -> [4, 5] 3 -> [6,

包含父项和子项的列表。这里根节点的父节点是-1。我必须从这里创建一棵树,但任何子节点都不能在其父节点之前创建

父子列表

3 7
3 6 
2 5
-1 1
2 4
1 2
1 3

以下算法将起作用:

  • 初始化
    映射
    整数
    列表/数组[Integer]
    。这里,
    表示
    父项
    列表/数组[整数]
    表示
    子项
  • 迭代上述
    父子列表
    。对于每个条目,填充步骤1中创建的
    Map
    。 i、 e.对于问题中提到的示例,
    Map
    将如下所示:
    
    -1 -> [1]
    1  -> [2, 3]
    2  -> [4, 5]
    3  -> [6, 7]
    
  • 准备好
    Map
    后,按键对
    Map
    进行排序
  • 对于
    映射
    中的每个
    键、值
    ,为父节点创建节点,然后为其子节点创建节点。对于剩余的
    键、值
    对,请遵循此操作

  • 这将确保
    父级
    总是在
    子级

    以下算法工作之前准备好:

  • 初始化
    映射
    整数
    列表/数组[Integer]
    。这里,
    表示
    父项
    列表/数组[整数]
    表示
    子项
  • 迭代上述
    父子列表
    。对于每个条目,填充步骤1中创建的
    Map
    。 i、 e.对于问题中提到的示例,
    Map
    将如下所示:
    
    -1 -> [1]
    1  -> [2, 3]
    2  -> [4, 5]
    3  -> [6, 7]
    
  • 准备好
    Map
    后,按键对
    Map
    进行排序
  • 对于
    映射
    中的每个
    键、值
    ,为父节点创建节点,然后为其子节点创建节点。对于剩余的
    键、值
    对,请遵循此操作

  • 这将确保
    家长
    总是在
    孩子

    之前做好准备。上面的答案对您有帮助吗?如果它对你有帮助的话,考虑一下回答。上面的答案有助于你吗?如果它对你有帮助,可以考虑回答。