标签: algorithm graph-algorithm
假设我们将图中的顶点数设置为n。 (我们可以通过用户输入等设置它。)
我想打印使用边连接顶点的所有可能情况。 (所以,我想打印n个顶点的所有可能(简单)连通图。)
另外,对于每种情况,我都想在每种情况下打印每个顶点的度数。
答案 0 :(得分:2)
一个天真但简单的解决方案是创建所有可能的图形,并过滤掉未连接的图形。
创建一组所有可能的边。有n(n-1)/2个,这将是集合的大小。
n(n-1)/2
找到所需集合的power set。此幂集表示可以创建的所有可能的图形。
维基百科文章还提供algorithm来计算集合的幂集。 This post也讨论了这个问题(java)
对于创建的每个子集 - 检查它是否已连接。可以使用诸如BFS之类的发现算法来完成。当且仅当BFS从单个(随机)源开始时才发现所有顶点时,图形才被连接。