问答题
欲用四种颜色对地图上的国家涂色,有相邻边界的国家不能用同一种颜色(点相交不算相邻)。(1)试用一种数据结构表示地图上各国相邻的关系。(6分)(2)描述涂色过程的算法。(不要求证明)(12分)【浙江大学2002八(18分)】
【正确答案】正确答案:地图涂色可用“四染色”定理。将地图上的国家编号(1到n),从编号1开始逐一涂色,对每个区域用1色,2色,3色,4色(下称“色数”)依次试探,若当前所取颜色与周围已涂色区域不重色,则将该区域颜色进栈;否则,用下一颜色。若1至4色均与相邻某区域重色,则需退栈回溯,修改栈顶区域的颜色。用邻接矩阵C[n][n]描叙地图上国家间的关系。若第i个国家与第j个国家相邻,则C
ij
=1,否则C
ij
=0。用栈s记录染色结果,栈的下标值为区域号,元素值是色数。 s[1]=1 ; i=2 ; j=1 ; //编号01的国家涂1色,i为国家号,j为涂色号 while(i<=n) {while(j<=4&&i<=n) {k=1; //k指已涂色区域号 while(k
4)(i—; j=s[i]+1;) //变更栈顶区域的颜色 }//while
【答案解析】