python连通图_用python实现无向图的连通性判断

该程序使用Python的networkx库判断无向图的连通性。通过邻接矩阵,检查是否存在零行来初步判断,然后通过边的收缩操作持续检查图形是否仍连通。最终,如果所有点能收缩到一起则为连通图,否则不连通。程序还包含画图功能以直观展示图形结构。
摘要由CSDN通过智能技术生成

import numpy as np

import networkx as nx

import matplotlib.pyplot as plt

from random import random,choice

'''

算法描述:

在用Fleury方法寻找欧拉回路的时候需要判断一条边删除之后余下的部分是否为连通图

这个程序用来判断一个图形是否为连通图

1.如果邻接矩阵中有零行,则可直接判断此图不联通

2.如果不联通就收缩一条边,将两个端点合并

3.持续进行2操作,如果最后所有的点都能收缩到一起,说明连通,如果不能收缩到一起,说明不联通

程序会按照你的输入生成一个随机的图形,并打印判断结果和画出图像

算法来自《关于Fleury算法的一点注记》(吕义忠)

'''

n=int(input('input node number: ')) #输入节点数目

m=int(input('input edge number: ')) #输入边数

while m&gt((n-1)*n/2):

print ('too many edges,input again')

n=int(input('input node number: ')) #输入节点数目

m=int(input('input edge number: ')) #输入边数

G = nx.Graph() #实例化nx

for i in range(n): #添加点

G.add_node(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值