您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在networkx(Python)中获取DiGraph的根(头)

在networkx(Python)中获取DiGraph的根(头)

如果使用“一个根元素”表示您的有向图是一棵根树,则根将是唯一度数为零的节点。

您可以通过以下方式在线性时间(以节点数为单位)中找到该节点:

In [1]: import networkx as nx

In [2]: G=nx.balanced_tree(2,3,create_using=nx.DiGraph()) # tree rooted at 0

In [3]: [n for n,d in G.in_degree() if d==0] 
Out[3]: [0]

或者,您可以使用拓扑排序(root是第一项):

In [4]: nx.topological_sort(G)
Out[4]: [0, 1, 3, 8, 7, 4, 9, 10, 2, 5, 11, 12, 6, 13, 14]

或者,从给定的(随机)节点开始并跟随先前的节点,直到找到没有先前节点的节点,可能会更快。

python 2022/1/1 18:46:48 有338人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶