python和c像吗,判断出一个有向图是否有环
由于它被标记为networkx,下面是使用这个库的解决方案:在
下面的代码创建一个方向图,并从列表中添加一条边。重要:边的第一个节点将成为源节点,第二个节点将成为目标节点。也就是说,子节点指向父节点。在
使用{}获取子代的父代,但使用{}获取父代的子代。请注意,这两个函数都将返回一个边列表。将networkx作为nx导入
edges=[(child1),)Parent1),(Child2),(Parent2),(Child3),(Parent1),
(子代4)、父代3)、子代2)、父代1) ]
G=nx。有向图(
G.add_edges_from(边)
print(g . out _ edges)“child 2”)# child 2的父母
print(g . in _ edges(parent 1))# parent 1的子代
输出:
^{pr2}$
你可以利用对列表的理解,得到单个孩子或家长的列表。temp=[edge[1]foredgeing . out _ edges( child 2 )]
print(ParentsofChild2:temp)))))))).
temp=[edge[0]for edgeing . in _ edges(parent 1)]
Print (childrenofparent 1:temp))))))))))。
输出:Child2的父母:[Parent2 , Parent1]
Parent1的子代:[Child2 , Child1 , Child3]
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。