Void macolor(int R[I,int n, int s) 1234567 1=6;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;=4/若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1=3 1|212|34□ ELSE{s[]=;=+1;J=1;相邻且不重色 k=4I=6,J=3 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;=4 // 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1=3 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=3 k=4
Void macolor(int R[I,int n, int s) 1234567 1=6;J=1;∥/为区域号,为染色号 0000 234567 0110 while(k<=n 000 01 { while((J<=4)&&(|<=n) 000 110 k=1;/k表示已经着色的区域号 101100 0000000 while((k<l)&&(sk]=Rlk=J)) k=k+1;∥/若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1=4 1|22|34 ELSE{s[]=;=+1;J=1;相邻且不重色 k=1 I=6,J=4 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=4 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=4 k=1
Void macolor(int R[I,int n, int s) 1234567 1=6;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=4 12234 ELSE{s[]=;=+1;J=1;相邻且不重色 k=2 I=6,J=4 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;=2 // 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1=4 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=4 k=2
Void macolor(int R[I,int n, int s) 1234567 1=6;J=1;∥/为区域号,为染色号 0000 001100 while(k<=n 01 { while((J<=4)&&(|<=n) 0110 0 k=1;/k表示已经着色的区域号 6 101100 0000000 while((k<l&&s[k]*RLk=J) k=k+1;=3∥/若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1=4 12234 ELSE{s[]=;=+1;J=1;相邻且不重色 I=6,J=4 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;=3 // 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1=4 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=4 k=3
Void macolor(int R[I,int n, int s) 1234567 1=6;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;=4/若不相邻,或若相邻且不重色,对下一个区域判断。 IF(K<∥/相邻且重色 1234567 THEN J=J+1=4 1|212|34□ ELSE{s[]=;=+1;J=1;相邻且不重色 =41=6,J=4 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;=4 // 若不相邻,或若相邻且不重色,对下一个区域判断。 IF (K<I) //相邻且重色 THEN J=J+1=4 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 k=4 I=6,J=4