Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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 - Fatal编程技术网

Algorithm 求水平的算法

Algorithm 求水平的算法,algorithm,Algorithm,假设我有以下层次结构: 一级 第一阶段 第二阶段 第三阶段 二级 第四阶段 第五阶段 第六阶段 三级 第7阶段 第8阶段 第9阶段 如果我知道阶段编号,如何通过编程找到级别编号,因为阶段5有级别2?希望您有一个指向父节点的指针 继续跟踪该指针,直到没有父节点为止。您已找到根节点。计算您必须跟随指针向上到达父节点的次数以获得深度。希望您有一个指向父节点的指针 继续跟踪该指针,直到没有父节点为止。您已找到根节点。计算您必须跟随指针向上到父级的次数以获得深度。您可以使用以下公式来确定基

假设我有以下层次结构:

  • 一级

    • 第一阶段
    • 第二阶段
    • 第三阶段
  • 二级

    • 第四阶段
    • 第五阶段
    • 第六阶段
  • 三级

    • 第7阶段
    • 第8阶段
    • 第9阶段

如果我知道阶段编号,如何通过编程找到级别编号,因为阶段5有级别2?

希望您有一个指向父节点的指针


继续跟踪该指针,直到没有父节点为止。您已找到根节点。计算您必须跟随指针向上到达父节点的次数以获得深度。

希望您有一个指向父节点的指针


继续跟踪该指针,直到没有父节点为止。您已找到根节点。计算您必须跟随指针向上到父级的次数以获得深度。

您可以使用以下公式来确定基于给定阶段的级别:

level = ceil(stage / 3)
示例:

ceil(5 / 3) = 2
ceil(9 / 3) = 3
ceil(1 / 3) = 1

不过,这个答案只有在每个级别正好有3个阶段时才有效。

您可以使用以下公式来确定基于给定阶段的级别:

level = ceil(stage / 3)
示例:

ceil(5 / 3) = 2
ceil(9 / 3) = 3
ceil(1 / 3) = 1
不过,这个答案只有在每个级别正好有3个阶段时才有效。

好的

如果您使用的是python,那么它非常简单

>>> d = { 'level 1' : [ 'stage 1', 'stage 2', 'stage 3' ], 
...       'level 2' : [ 'stage 4', 'stage 5', 'stage 6' ],
...       'level 3' : [ 'stage 7', 'stage 7', 'stage 9' ],
...     }
>>> for key, val in d.items():
...     if 'stage 5' in val:
...             print key
谢谢

好的

如果您使用的是python,那么它非常简单

>>> d = { 'level 1' : [ 'stage 1', 'stage 2', 'stage 3' ], 
...       'level 2' : [ 'stage 4', 'stage 5', 'stage 6' ],
...       'level 3' : [ 'stage 7', 'stage 7', 'stage 9' ],
...     }
>>> for key, val in d.items():
...     if 'stage 5' in val:
...             print key

谢谢

不要在生产代码中做这样的假设。它会回来咬你的…@EricJ。我理解这一点,这就是我在最后指出这一点的原因。同样,这个假设也适用于他提供的例子。如果他说了一些不同的话,我会调整我的答案,但现在它解决了他的问题。千万不要在生产代码中做出这样的假设。它会回来咬你的…@EricJ。我理解这一点,这就是我在最后指出这一点的原因。同样,这个假设也适用于他提供的例子。如果他说了不同的话,我会调整我的答案,但现在它解决了他的问题。