如何打印所有可能的图形组合
假设我们将图中顶点的数量设置为n。 (我们可以通过用户输入等来设置)
我想打印使用边缘连接顶点的所有可能情况。 (所以,我想打印n个顶点的所有可能的(简单的)连通图。)
另外,对于每种情况,我想打印每种情况下每个顶点的度数。
一个简单而简单的解决方案是创建所有可能的图形,并过滤出未连接的图形。
创建一组所有可能的边缘。 有n(n-1)/2
个,这就是这个集合的大小。
找到所需设置的功率集。 这个能量集代表了所有可能创建的图形。
该维基百科文章还给出了一个算法来计算一个集合的幂集。 这篇文章还讨论了这个问题(Java)
对于每个创建的子集 - 检查它是否连接。 它可以使用诸如BFS的发现算法完成。 当且仅当BFS从单个(随机)源开始时才发现所有顶点,该图连通。
链接地址: http://www.djcxy.com/p/37309.html