地图着色问题算法分析 第7页
for(i=1;i<=s-1;i++)//分别于前面已经着色的几块比较
if(G.arcs[i][s]==1&&color[i]==color[s])
{flag=1;break;}
return flag;
}
//*******************************************
void output(Graph G)//输出函数
{
int i;
for(i=1;i<=G.vnum;i++)
printf("%d ",color[i]);
printf("\n");
}
//*******************************************
void trycolor(int s,Graph G)//s为开始图色的顶点,本算法从1开始
{
int i;
if(s>G.vnum)//递归出口
{
www.youerw.com color[s]=i;
if(colorsame(s,G)==0)
trycolor(s+1,G);//进行下一块的着色
}
}
}
//*******************************************
int main()
{
Graph G;
CreateGraph(G);
PrintGraph(G);
printf("着色方案:\n");
trycolor(1,G);
return 0;
}
参考代码结果:上一页 [1] [2] [3] [4] [5] [6] [7]
地图着色问题算法分析 第7页下载如图片无法显示或论文不完整,请联系qq752018766