找出水平的算法

时间:2012-07-27 01:32:37

标签: algorithm

假设我有以下级别的层次结构:

  • 1级

    • 第1阶段
    • 第2阶段
    • 第3阶段
  • 第2级

    • 第4阶段
    • 第5阶段
    • 第6阶段
  • 3级

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

如果我知道舞台编号,如何以编程方式找到关卡编号,因为第5阶段有2级?

3 个答案:

答案 0 :(得分:2)

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

继续关注该指针,直到没有父节点。您已找到根节点。计算你必须按指针到父母的次数来获得你的深度。

答案 1 :(得分:1)

您可以使用以下公式根据给定阶段查找您所处的级别:

level = ceil(stage / 3)

示例:

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

但是,这个答案只适用于每个级别完全 3个阶段。

答案 2 :(得分:0)

如果你使用的是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

谢谢