• 大小: 1.98KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-14
  • 语言: C/C++
  • 标签: 着色  

资源简介


c 实现回溯算法解决图的M着色问题,得到冲突点与其周围节点


资源截图

代码片段和文件信息

//图着色问题回溯法
/*
无向图邻接矩阵示例
0 1 1 0 0
0 1 1 0 1
1 1 0 0 1
0 1 0 0 1
0 1 1 1 0
*/
#include

int color[100];
//int c[100][100];
bool ok(int k int c[][100])//判断顶点k的着色是否发生冲突
{
    int ij;
    for(i=0;i    {
        if(c[k][i]==1&&color[i]==color[k])
            return false;
    }
    return true;
}

void graphcolor(int nint mint c[][100])
{
    int ik;
    for(i=0;i        color[i]=0;//初始化
    k=0;
    while(k>=0)
    {
        color[k]=color[k]+1;
        while(color[k]<=m)
            if (ok(kc)) break;
            else color[k]=color[k]+1;//搜索下一个颜色

        if(color[k]<=m&&k==n-1)//求解完毕,输出解
        {
            for(i=0;i                printf(“%d “color[i]);
            printf(“\n“);
            return;//return表示之求解其中一种解
        }
        else if(color[k]<=m&&k            k=k+1;    //处理下一个顶点
        else
        {
//            co

评论

共有 条评论