#include
#include
//library untuk file
#include
void main()
{
char pilih;
do
{
clrscr();
char filename[100];
cout<<"==================="<
//membuka file
do
{
cout<<"Masukkan nama file sebagai inputan program : ";
cin>>filename;
infile.open(filename);
//validasi file
if (!infile)
{
cout<<"File tidak ada coba perikasa kembali!"<
}while (!infile);
typedef struct{
int stat,color;
int check;
char name[20];
}idver;
int l[20];
int temp2,n1[20];
int i,j,k,bar,kol,temp;
idver vertex[20][20],vert[20];
//membaca isi file (baris dan kolom
infile>>bar;
infile>>kol;
cout<
cout<<"Vertex ke-"<<(i+1)<<" : ";
cin>>vert[i].name;
}
//membaca isi file (status vertex, 0 atau 1)
for (i=0; i
n1[i]=0;
for (j=0; j
infile>>temp;
vertex[i][j].stat = temp;
//menghitung nilai satu
if (temp==1)
n1[i]++;
}
}
//mencari baris yang paling banyak memiliki satu
int max = -1;
for (i=0;i
{
max=n1[i];
}
}
int res=max;
int incolor =1;
for (i=0; i
for (j=i+1; j
vertex[i][j].check =0;
}
vert[i].color=0;
}
max=-1;
for (i=0; i
/*for (j=0; j
for (k=j+1; k
if (vertex[j][k].connect ==0)
if ((vertex[i][j].stat==1) && (vertex[i][k].stat==1))
vertex[i][j].connect =1;
}
}
*/
vert[i].color=0;
}
//pewarnaan
for (i=0; i
for (j=0; j
for (k=j+1; k
if ((n1[i]>=max))
{
if (vertex[j][k].check == 0)
{
if((vertex[i][j].stat ==1) && (vertex[i][k].stat ==1))
{
vertex[j][k].check =1;
if (vert[j].color == 0)
{
vert[j].color = incolor;
vert[k].color = incolor + 1;
}
else
{
vert[k].color = vert[j].color + 1;
}
}
else
{
if ((vertex[i][j].stat==1) && (vertex[i][k].stat==0))
{
if (vert[j].color == 0)
{
vert[j].color = incolor;
vert[k].color = incolor;
}
else
{
vert[k].color = vert[j].color;
}
}
else
{
if (j==0)
vert[k].color = vert[j].color=incolor;
}
}
}
}
}
}
max=n1[i];
}
cout<<"---------------------------"<
typedef struct {
char nama[10];
}warna;
//list warna
warna color[10];
strcpy(color[1].nama,"Merah");
strcpy(color[2].nama,"Jingga");
strcpy(color[3].nama,"Kuning");
strcpy(color[4].nama,"Hijau");
strcpy(color[5].nama,"Biru");
strcpy(color[6].nama,"Nila");
strcpy(color[7].nama,"Ungu");
cout<
if (res==kol)
cout<
cout<
}
cout<<"------------------------------------"<
if ((vert[i].color == vert[i+1].color) && (kol!=res))
{
cout<
else if (kol==res)
{
cout<<"Semua vertex harus memiliki warna berbeda"<
}
}
infile.close();
cout<<"====================================================================="<
cin>>pilih;
}while ((pilih=='y') || (pilih=='Y'));
}
Untuk adk2 smster 3 maap karena program yg di atas gak jalan..Makanya jangan maen copy aj..
Karena ak baek hati ini klik aja di sini untuk donlod program nya, tp pake C++..
Jangan lupa komen yaw...
Label
- Adekdik Software (1)
- Aplikasi Iseng (16)
- C++ (7)
- Download (2)
- Excel (1)
- Google Map (1)
- Iseng (1)
- Nambah ilmu (32)
- Pascal (20)
- Super Iseng (2)
- VB .Net (21)
- VB 6 (1)
Rabu, 02 September 2009
Colouring graph dengan C++
Label: C++
Langganan:
Posting Komentar (Atom)
10 komentar:
muach...
kak kalo menentukan graf terhubung pa ga dengan c++ gmn carana??
@ maha :
bisa diperjelas sedikit gak, mengenai gmn inputny, trus outputny mw sperti ap ?
Menurut ak, algoritma colouring graph itu merupkan lanjutan dari pngecekan graf terhubung ny itu...
maap y sebelumny..
kak program yang vb ada gak???
waduh, ak lum dapet bwt...
terjemahin aja k VB algoritma nya..Pasti bisa...
mas cara mengiputkan ya bagai mana?
ijin copas ya..
makasih..
@Hobby : lewat file mas.. ntar kalo mas uda download, ada sebuah file txt. "Latihan.txt". Isinya
0 0 1 1 0
1 1 0 0 1
0 1 0 0 1
1 0 0 0 1
....
Kurang lebih seperti di atas.
Tiap kolom dari angka tersebut berarti Vertex. Kolom 1 bearti vertex ke 1, kolom 2 vertex ke 2. Dan baris nya itu menunjukan hubungan dari masing - masing vertex. Misalnya pada baris ke 1 yang di beri angka "1" adalah Vertex ke 3 dan 4 jadinya Vertex ke 3 dan ke 4 berhubungan. Dan warnyanya gak boleh sama.
jadi mas bisa edit file itu, terserah mau vertex nya berapa.
@ muslim_IT, silahkan mas...
mas.. kok program aku gag bisa jlan sih , program nya udah di download tapi tetep gag bisa .terus input filenya apa?
terima kasih
pas kita insert vertex.. masa kita harus insert vertex sebanyak itu mas??.. sekitar 30rb vertex???
tlg balas ke email remixone@rocketmail.com
Posting Komentar