1. 问题
给定无向连通图G和m种不同的颜色,用这些颜色为图G的各顶点着色,每个顶点着一种颜色,使G中每条边的2个顶点着不同颜色。
2. 解析
通过回溯的方法,不断的为每一个节点着色,在前面n-1个节点都合法的着色之后,开始对第n个节点进行着色,这时候枚举可用的m个颜色,通过和第n个节点相邻的节点的颜色,来判断这个颜色是否合法,如果找到那么一种颜色使得第n个节点能够着色,那么说明m种颜色的方案是可行的
3. 设计
int Check(int k) {
for (int i = 1; i <= k; i++)
如果k与i相连并且i的颜色与k的颜色相同则返回0
否则返回1
}
void GraphColor