邻接矩阵图最优着色问题
能帮我写个深度优先搜索求最少颜色问题的代码吗?邻接矩阵已经创建
深度搜索代码如下,能否请高人改成求最优着色问题的代码(相邻两点不能同色的最少着色方案,用channel输出)
#include<iostream>
#include<string>
using namespace std;
bool visit[26];
int channel=0;
void DFS(int r[][26],int a)
{
visit[a]=true;
channel++;
for(int i=0;i<26;i++)//对该结点尚未访问的邻接结点递归调用DFS函数
{
if((visit[i]==false)&&(r[a][i]==1))
{
DFS(r,i);
}
}
}
int main()
{
int num;
while((cin>>num)&&(num!=0))
{
int tnum=num;
int r[26][26]={-1};
int row,col;
for(row=0;row<num;row++)
{
for(col=0;col<num;col++)
{
r[row][col]=0;
}
}//根据输入的num值初始化num阶数组
row=0;
col=0;
while(num>0)
{
string str;
cin>>str;
int i=0;
for(i=2;i<str.length();i++)
{
col=str[i]-65;
r[row][col]=1;
}
row++;
num--;
}//生成深度优先搜索的矩阵
for(int i=0;i<tnum;i++)
{
visit[i]=false;
}
for(int j=0;j<tnum;j++)
{
if((visit[j]==false))//对尚未访问过的结点调用DFS函数
{
DFS(r,j);
}
}
cout<<channel;
channel=0;
}
return 0;
}
深度搜索代码如下,能否请高人改成求最优着色问题的代码(相邻两点不能同色的最少着色方案,用channel输出)
#include<iostream>
#include<string>
using namespace std;
bool visit[26];
int channel=0;
void DFS(int r[][26],int a)
{
visit[a]=true;
channel++;
for(int i=0;i<26;i++)//对该结点尚未访问的邻接结点递归调用DFS函数
{
if((visit[i]==false)&&(r[a][i]==1))
{
DFS(r,i);
}
}
}
int main()
{
int num;
while((cin>>num)&&(num!=0))
{
int tnum=num;
int r[26][26]={-1};
int row,col;
for(row=0;row<num;row++)
{
for(col=0;col<num;col++)
{
r[row][col]=0;
}
}//根据输入的num值初始化num阶数组
row=0;
col=0;
while(num>0)
{
string str;
cin>>str;
int i=0;
for(i=2;i<str.length();i++)
{
col=str[i]-65;
r[row][col]=1;
}
row++;
num--;
}//生成深度优先搜索的矩阵
for(int i=0;i<tnum;i++)
{
visit[i]=false;
}
for(int j=0;j<tnum;j++)
{
if((visit[j]==false))//对尚未访问过的结点调用DFS函数
{
DFS(r,j);
}
}
cout<<channel;
channel=0;
}
return 0;
}
...全文
相关推荐
C语言使用回溯法解旅行售货员问题与图的m着色问题
旅行售货员问题的解决方案通常包括以下步骤:1. 定义图的结构,例如使用邻接矩阵`graph[N][N]`存储城市间的距离。2.
图着色问题 贪心法-C语言
对于图着色问题,贪心算法可能无法保证得到最少颜色的解,因为它仅考虑局部最优。在某些特定情况下,例如当图是“完美图”时,贪心法可以得到最优解。
图的着色,贪心算法,数据结构
在该课程设计中,我们使用了贪心算法来解决图的着色问题。首先,我们从文件中读取邻接矩阵,然后使用贪心算法来选择当前最优的着色方案。算法的思想是,以任意顶点作为开始顶点,依次考察图中的未被着色的每个顶点。
算法(c++)——地图着色问题.rar
四色定理是解决这一问题的基础,它断言任何地图都可以用四种颜色进行着色。C++中实现地图着色问题,我们可以使用邻接矩阵或邻接表来表示图。
tulun.rar_图着色_图着色 matlab_图着色 matlab_图着色问题_着色问题
总的来说,这个MATLAB程序提供了一种计算图着色问题的方法,用户可以利用GUI输入图的信息,然后通过后台的算法计算出最优的着色方案。


