PDA

View Full Version : سوال: رنگ آمیزی گراف در c++



saeed341
یک شنبه 27 اردیبهشت 1394, 15:31 عصر
سلام دوستان کسی میتونه توضیحاتی در مورد این برنامه که در مورد رنگ آمیزی گراف است بهم بده؟؟؟
میخوام document آماده کنم براش
ممنون از لطفتون
#include <iostream>
using namespace std;
bool MAT[10][10];
void PRINT(int);
void SORT(int);
int SORTED[10];
int C[10];
int AR[5];
int main()
{
int n,i,j,k;
bool bl=true;
cout<<"Darajeye Geraf: ";
cin>>n;
for (i=0;i<n;i++)
{
cout<<"Derayehaye Satre "<<i+1<<" Ra Vared Konid :\n";
for (j=0;j<n;j++)
cin>>MAT[i][j];
}
SORT(n);
C[SORTED[0]]=0;
for (i=1;i<n;i++)
for (j=0;j<n;j++)
{
for (k=0;k<i;k++)
if (MAT[SORTED[i]][SORTED[k]]&&C[SORTED[k]]==j)
bl=false;
if (bl)
{
C[SORTED[i]]=j;
j=n;
}
bl=true;
}
PRINT(n);
return 0;
}
void SORT(int n)
{
int i,j,m,ar[10]={0};
for (i=0;i<n;i++)
for (j=0;j<n;j++)
if (MAT[i][j])
ar[i]++;
for (j=0;j<n;j++)
{
m=0;
for (i=0;i<n;i++)
if (ar[m]<ar[i])
m=i;
SORTED[j]=m;
ar[m]=-1;
}
}
void PRINT(int n)
{
for (int i=0;i<n;i++)
{
cout<<"\nV["<<i+1<<"] : L";
if (C[i])
cout<<"-"<<C[i];
}
cout<<"\n\nF(L) = ";
int p=0,q=1;
for (int j=0;j<n;j++)
{
for (int k=0;k<n;k++)
if (C[k]==j)
p++;
if (j==0)
{
cout<<"L";
if (p>1)
cout<<"^"<<p;
}
else
{
if (p>0)
{
q=j;
cout<<" * (L-"<<j<<")";
if (p>1)
cout<<"^"<<p;
}
}
p=0;
}
cout<<"\n\nHadeAghal Tedade Rang: "<<q+1<<"\n\n";
}

saeed341
شنبه 02 خرداد 1394, 21:13 عصر
کسی نبود توضیحی در مورد این الگوریتم بده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟:ناراحت::ناراحت: