0

Pemrograman Graf

Posted by Unknown on 10:26 AM
Sesuai judul diatas, kali ini saya akan mem-posting tentang pemrograman graf dimana program berikut ini bertujuan untuk menentukan apakah graf adalah sebuah pohon perentang atau tidak, dan jika tidak maka graf tersebut akan diubah menjadi sebuah pohon perentang dengan metode perkalian matriks

#include
#include
int main(){
int i,j,k, x, y, n,sum=0, deg=0, sisi=0, stat_1=0, stat_2=0, limit;
printf("Berikan banyak titik : ");
scanf("%d",&x);
y=x;
int matriksA[x][y], matriksT[x][y], matriksU[x][y], matriksV[x][y];
printf("\nBerikan nilai matriks sesuai bentuk graf \n");
for(i=0;i for(j=0;j printf("titik[%d][%d] = ",i+1,j+1);
scanf("%d",&matriksA[i][j]);
if(matriksA[i][j]!=1 && matriksA[i][j]!=0 ){
printf("Nilai harus 1 atau 0\n");
if(i==0)
j--;
else if(i>0 || j>0)
j--;
else
printf("matriks error");
}
}
}

printf("\n Matriks Graf : \n");
for(i=0;i for(j=0;j printf(" %d ",matriksA[i][j]); }
printf("\n");
}

for(i=0;i for(j=0;j if(matriksA[i][j]==1)
deg++;
}
}

limit=x-1;
sisi=deg/2;
if(sisi==limit)
stat_1=1;
for(n=1;n if(n==1){
for(i=0;i for(j=0;j matriksT[i][j]=matriksA[i][j];
matriksV[i][j]=matriksT[i][j];
}
}
}
else{
for(i=0;i for(j=0;j for(k=0;k matriksU[i][j]+=matriksV[i][k]*matriksA[k][j];
}
matriksT[i][j]+=matriksU[i][j];
}
}
for(i=0;i for(j=0;j matriksV[i][j]=matriksU[i][j];
matriksU[i][j]=0;
}
}
}
}
for(i=0;i for(j=0;j if(matriksT[i][j]==0){
sum=0;
break;}
else
sum++;}
}
if(sum>0)
stat_2=1;
if(stat_1==1 && stat_2==1)
printf("\n Graf merupakan sebuah pohon \n");
else
printf("\n Graf bukan merupakan sebuah pohon \n");
if(stat_2==1 && stat_1!=1){
for(i=0;i for(j=0;j if(matriksA[i][j]==1){
if(sisi > limit){
sisi=sisi-1;
matriksA[i][j]=0;
matriksA[j][i]=0;
}
}
}
}

printf("\n graf sekarang merupakan sebuah pohon perentang dengan matriks sebagai berikut :");
for(i=0;i for(j=0;j printf(" %d ",matriksA[i][j]);
}
printf("\n");
}

0 Comments

Copyright © 2009 Indera Surya Satria All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.