python有向图遍历_用Networkx进行有向图遍历

好吧,我要介绍的解决方案有点老套,但我愿意接受更多优化建议。在

首先,我们将创建一个用于测试的虚拟图import networkx as nx

G = nx.balanced_tree(2,4,create_using=nx.DiGraph())

接下来,我们将使用networkx的dfs_treeAPI(使用最新版本),并使用depth_limit属性来提取深度为n和{}的树,其中n+1是用户输入的深度(因为它从1开始索引深度)

^{pr2}$

然后对深度n+1执行相同的操作T2 = nx.dfs_tree(G, source=0,depth_limit=4)

T2_edges =list(T2.edges())

#[(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6), (3, 8), (3, 7), (4, 9), (4, 10), (5, 11), (5, 12), (6, 13), (6, 14), (7, 16), (7, 15), (8, 17), (8, 18), (9, 19), (9, 20), (10, 21), (10, 22), (11, 24), (11, 23), (12, 25), (12, 26), (13, 27), (13, 28), (14, 29), (14, 30)]

现在来看看这两个列表的XORedges_left = list(set(T1_edges).symmetric_difference(T2_edges))

#[(14, 30), (11, 23), (10, 21), (7, 16), (11, 24), (7, 15), (10, 22), (9, 20), (12, 25), (13, 28), (8, 17), (14, 29), (12, 26), (13, 27), (8, 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值