一、实验目的:
理解图着色问题的定义、掌握相关算法以及实现。
二、实验内容:
- 掌握图着色问题的定义
- 了解图着色算法
- 实现算法
三、实验任务解决方案:
1、图着色算法的流程图:
2、图着色算法实现的关键代码:
(1)着色:
public void mColoring(int k){
//backtracking function
for(int i=1;i<=n;i++){
next_color(k); //coloring kth vertex
if(x[k]==0)
return; //if unsuccessful then backtrack
if(k==n) //if all colored then show
write();
else
mColoring(k+1); /* successful but still left to color */
}
}
(2)判断相连颜色是否一致
private void next_color(int k){
do{
int i=1;
x[k]=(x[k]+1)%(m+1);
if(x[k]=&