Void macolor(int Ru[Lint n, int s[l) 1234567 s[1]=1;/1号区域染1色 =2;J=1;∥/为区域号,为染色号 000 101 000 while(k<=n) { while((J<=4)&&(|<=n) 234567 101 0 10110 000 k=1;/k表示已经着色的区域号 0000000 while((k<l&&s[k]*RLk=J) k=k+1;∥若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1=2 ELSE{s[]=;=+1;J=1;相邻且不重色 k=1I=2,J=2 IF(J>4)THEN{|=-1;J=s[]+1
Void mapcolor(int R[][],int n,int s[]) { s[1]=1; // 1号区域染1色 I=2; J=1; // I为区域号,J为染色号 while ( I<=n) { while(( J<=4)&&(I<=n)) { k=1; // k表示已经着色的区域号 while(( k<I)&&(s[k]R[I,k]!=J)) k=k+1; // 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1=2 ELSE{s[I]=J; I=I+1; J=1; }//相邻且不重色 } IF (J>4) THEN { I=I-1; J=s[I]+1 }} } 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 1 2 3 4 5 6 7 I=2,J=2 k=1
Void macolor(int Ru[Lint n, int s[l) 1234567 s[1]=1;/1号区域染1色 =2;J=1;∥/为区域号,为染色号 0000 000 while(k<=n) 0 { while((J<=4)&&(|<=n) 234567 10 10110 000 k=1;/k表示已经着色的区域号 0000000 while((k<l&&s[k]*Rlk=J)) k=k+1=2;//若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1=2 ELSE{s[]=;=+1;J=1;相邻且不重色 I=2,J=2 IF(J>4)THEN{|=-1;J=s[]+1 k=2
Void mapcolor(int R[][],int n,int s[]) { s[1]=1; // 1号区域染1色 I=2; J=1; // I为区域号,J为染色号 while ( I<=n) { while(( J<=4)&&(I<=n)) { k=1; // k表示已经着色的区域号 while(( k<I)&&(s[k]R[I,k]!=J)) k=k+1=2; // 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1=2 ELSE{s[I]=J; I=I+1; J=1; }//相邻且不重色 } IF (J>4) THEN { I=I-1; J=s[I]+1 }} } 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 1 2 3 4 5 6 7 I=2,J=2 k=2
Void macolor(int Ru[Lint n, int s[l) 1234567 s[1]=1;/1号区域染1色 =2;J=1;∥/为区域号,为染色号 0000 234567 0110 while(k<=n) 000 01 { while((J<=4)&&(|<=n) 000 110 k=1;/k表示已经着色的区域号 101100 0000000 while((k<l&&s[k]*Rlk=J)) k=k+1=2;//若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1=2 12 ELSE{s[]=;1=H+1;J=1;M相邻且不重色 I=3,J=1 IF(J>4)THEN{|=-1;J=s[]+1 k=2
Void mapcolor(int R[][],int n,int s[]) { s[1]=1; // 1号区域染1色 I=2; J=1; // I为区域号,J为染色号 while ( I<=n) { while(( J<=4)&&(I<=n)) { k=1; // k表示已经着色的区域号 while(( k<I)&&(s[k]R[I,k]!=J)) k=k+1=2; // 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1=2 ELSE{s[I]=J; I=I+1; J=1; }//相邻且不重色 } IF (J>4) THEN { I=I-1; J=s[I]+1 }} } 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 1 2 3 4 5 6 7 I=3,J=1 k=2 2
Void macolor(int R[I,int n, int s) 1234567 =2;=1;∥/为区域号,为染色号 000 101 000 while(k<=n { while((J<=4)&&(|<=n) 234567 101 0 10110 000 k=1;/k表示已经着色的区域号 0000000 while((k<l&&s[k]*RLk=J) k=k+1;∥若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1 12234 ELSE{s[]=;=+1;J=1;相邻且不重色 k=1 I=6,J=1 IF(J>4)THEN{|=-1;J=s[]+1
Void mapcolor(int R[][],int n,int s[]) { …… I=2; J=1; // I为区域号,J为染色号 while ( I<=n) { while(( J<=4)&&(I<=n)) { k=1; // k表示已经着色的区域号 while(( k<I)&&(s[k]R[I,k]!=J)) k=k+1; // 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1 ELSE{s[I]=J; I=I+1; J=1; }//相邻且不重色 } IF (J>4) THEN { I=I-1; J=s[I]+1 }} } 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 2 3 4 1 2 3 4 5 6 7 I=6,J=1 k=1
Void macolor(int R[I,int n, int s) 1234567 1=6;J=1;∥/为区域号,为染色号 0000 while(k<=n) 234567 001100 01 { while((J<=4)&&(|<=n) 0110 0 k=1;//k表示已经着色的区域号 101100 0000000 while((k<l&&s[k]*RLk=J) k=k+1;//若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1=2 [12|234 ELSE{s[]=;=+1;J=1;相邻且不重色 k=1 I=6,J=2 IF(J>4)THEN{|=-1;J=s[]+1
Void mapcolor(int R[][],int n,int s[]) { …… I=6; J=1; // I为区域号,J为染色号 while ( I<=n) { while(( J<=4)&&(I<=n)) {k= 1; // k表示已经着色的区域号 while(( k<I)&&(s[k]R[I,k]!=J)) k=k+1;// 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1=2 ELSE{s[I]=J; I=I+1; J=1; }//相邻且不重色 } IF (J>4) THEN { I=I-1; J=s[I]+1 }} } 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 2 3 4 1 2 3 4 5 6 7 I=6,J=2 k=1