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>((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(