Networkx_找出最大联通子图及联通子图规模排序

来源:互联网 发布:软件技术支持面试题 编辑:程序博客网 时间:2024/05/17 23:41

G = nx.path_graph(4)     #生成一个包含4个节点的线型网络(一字长蛇型),节点编号lebel从0到1


nx.draw(G,with_labels=True,label_size=1000,node_size=1000,font_size=20)plt.show()

G.add_path([10,11,12])  #再来一个一字长蛇型网络,节点分别是10,11,12

import matplotlib.pyplot as pltimport networkx as nxG=nx.path_graph(4)G.add_path([10,11,12])nx.draw(G,with_labels=True,label_size=1000,node_size=1000,font_size=20)plt.show()#[print(len(c)) for c in sorted(nx.connected_components(G),key=len,reverse=True)]for c in sorted(nx.connected_components(G),key=len,reverse=True):    print(c)      #看看返回来的是什么?结果是{0,1,2,3}    print(type(c))   #类型是set    print(len(c))   #长度分别是4和3(因为reverse=True,降序排列)largest_components=max(nx.connected_components(G),key=len)  # 高效找出最大的联通成分,其实就是sorted里面的No.1print(largest_components)  #找出最大联通成分,返回是一个set{0,1,2,3}print(len(largest_components))  #4


0 0
原创粉丝点击