【发布时间】:2014-05-29 15:38:52
【问题描述】:
我需要创建具有偶数顶点度的随机连接无向图。我必须这样做来测试为不同的顶点数 (N) 找到欧拉循环的时间。图的表示是邻接表。我有这样的代码:
void make_graph()
{
int i,a,b,c;
int nasycenie;
nasycenie=(0.5)*((N*(N-1))/2);
if(nasycenie<N-1) nasycenie=N-1;
for(i=1;i<=nasycenie;++i)
{
if(i<N)
{
a=rand()%i;
b=i;
}
else
{
a=rand()%N;
b=rand()%(N-1);
b+=(b>=a);
}
L1[a].push_back(b);
L1[b].push_back(a);
}
}
它使连接的无向图,但顶点度不均匀。如何改进它以获得均匀的顶点度数?
【问题讨论】:
-
您可能需要检查模操作数。