如何为非循环有向图的顶点分配“级别”?

如何为非循环有向图的顶点分配“级别”?,第1张

如何为非循环有向图的顶点分配“级别”?

我认为将v的水平设为v的最长有向路径长度可能对您来说很好。在Python中:

# the level of v is the length of the longest directed path from vdef assignlevel(graph, v, level):    if v not in level:        if v not in graph or not graph[v]: level[v] = 0        else: level[v] = max(assignlevel(graph, w, level) + 1 for w in graph[v])    return level[v]g = {'a': ['b', 'c'], 'b': ['d'], 'd': ['e'], 'c': ['e']}l = {}for v in g:    assignlevel(g, v, l)print l

输出:

{'a': 3, 'c': 1, 'b': 2, 'e': 0, 'd': 1}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5121998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存