【问题标题】:Traversing a diagram that represents real operations遍历表示实际操作的图
【发布时间】:2011-05-27 18:40:12
【问题描述】:

您好,

谁能告诉我用什么算法来遍历这样的有向无环图/图表:

例如。 图表节点:A、B、C、D1、D2、D3、E
图边:A→B、B→C、C→D1、C→D2、C→D3、D1→E、D2→E、D3→E

遍历是这样的:

A → B → C → D1,然后 C → D2,然后 C → D3,
之后,他们加入:D1 → E,D2 → E,D3 → E

我的图表代表实时操作。大多数操作是线性的,但是当操作按条件拆分时,每个拆分(例如节点 C 拆分为 D1、D2 和 D3)等待所有操作完成后再加入(例如节点 D1、D2 和 D3 在节点 E 处加入)

我需要遍历我的节点并按照这个确切的顺序调用每个操作。

我使用 Python 和 pygraph,但如果你想发布一些算法,你可以使用任何语言。

也许是这个算法的标准名称,比如深度优先搜索、Dijkstra 算法、爬山,我不知道?...

非常感谢!

【问题讨论】:

    标签: python graph diagram


    【解决方案1】:

    topological sort 将为您提供在给定边中执行操作所需的顺序。

    【讨论】:

    • 太棒了!我使用拓扑排序和节点邻居来创建所有边,就像我想要的一样!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    相关资源
    最近更新 更多