Langusng ajha ni programnya
#include
<iostream>
bool **W;
int n, m = 0;
int v, e = 0;
int x, y = 0;
int *vcolor;
bool promising (int
i){
int j = 0;
while (++j < i){
if ( W[i][j] && vcolor[i] ==
vcolor[j] )
return false; }
return true;}
void m_coloring
(int i){
if (promising(i)) {
if (i+1==n) {
for (i=1; i<n; i++ )
cout<<vcolor[i]<<" ";
cout<<endl; }
else{
for (int color = 1; color <= m;
color++){
vcolor [i + 1] = color;
m_coloring(i + 1); }
} } }
void initArrays(){
for( int i = 0; i < n; i++ ){
W[ i ] = new bool[ n ];
vcolor[ i ] = 0;
} }
void fillW(){
for( int i = 0; i < n; i++ ){
for( int j = 0; j < n; j++ ){
W[i][j] = false; } } }
void askForEdges(){
cout << "berapa banyak sisi?
";
cin >> e;
cout << endl << "Masukkan
sisi: (titik_x (spasi) titik_y)" << endl;
for( int i = 0; i < e; i++ ) {
cin >> x >> y;
W[x][y] = true;
W[y][x] = true; } }
void
specialMatrixPrint(){
cout << endl;
for( int i = 0; i < n; i++ ){
for( int j = 0; j < n; j++ ){
cout << W[i][j] <<
" "; }
cout << endl; } }
void
showEdgesMatrix(){
int i;
cout << "\n "; for( i = 1; i < n; i++ ) {
cout << i << " "; }
cout << "\n "; for( i = 1; i < n; i++ ) {
cout << "# "; }
cout << endl;
for( i = 1; i < n; i++ ){
cout << i << " #
";
for( int j = 1; j < n; j++ ) {
cout << (W[i][j]? "1
": "0 "); }
cout << endl; } }
void checkFor( int
i ){
m = i;
m_coloring( 0 ); }
int main(){
cout << "Berapa banyak titik?
" ;
cin >> n;
n += 1;
W = new bool *[ n ];
vcolor = new int[ n ];
initArrays();
fillW();
askForEdges();
showEdgesMatrix();
checkFor( 4 ); //warna yang digunakan
cin >> y;
return 0; }
=============================================
penjelasan:
jadi inputannya adalah ==============>>>>
Hasil outputnya nanti berupa angka 1-4 yang mewakili warna.
Misalnya output: 1 2 3 4 3 1
berarti
titik ke 1: warna 1 (merah)
titik ke 2: warna 2 (putih)
titik ke 3: warna 3 (biru)
titik ke 4: warna 1 (hijau)
titik ke 5: warna 3 (Biru)
titik ke 6: warna 1 (merah)
TERIMA KASIH... TIDUR SIANG DULU.
Miss U Say.
2 Komentar
Maaf sebelumnya, saya sedikit bingung dengan "titik ke 4: warna 1 (hijau)" seharusnya pada warna 1 itu berwarna "merah" bukan? kok disitu hijau? terimakasih. mohon jawabannya.
BalasHapusuzi :v
Hapus