سورس کد الگوریتم کراسکال و دیکسترا ؟

فرهادم

عضو جدید
سلام دوستان
من سورس کد الگوریتم های کراسکال و دیکسترا به زبان C رو می خوام ...
ممنون می شم اگه کمکم کنید..
 

iris-f

عضو جدید
سلام دوستان
من سورس کد الگوریتم های کراسکال و دیکسترا به زبان C رو می خوام ...
ممنون می شم اگه کمکم کنید..


دوست عزیز این برنامه کراسکال

#include
#include
typedef struct
{
int node1,node2;
int wt;
}edge;
/************ Sortedges ************/
void sortedges(edge a[],int n)
{
int i,j;
edge temp;
for(i=0;i< n-1;++i)
for(j=i+1;j< n;++j)
if(a.wt>a[j].wt)
{
temp=a;
a=a[j];
a[j]=temp;
}
}
/************ Checkcycle ************/
int checkcycle(int p[],int i,int j)
{
int v1,v2;
v1 = i;
v2 = j;
while(p>-1)
i = p;
while(p[j]>-1)
j = p[j];
if(i!=j)
{
p[j]=i;
printf("%d %d\n",v1,v2);
return 1;
}
return 0;
}
/************ Main ************/
void main()
{
edge e[100];
int parent[100];
int n,i,j,m,k = 1,cost = 0;
printf("Enter number of nodes\n");
scanf("%d",&n);
for(i=0;i< n;++i)
parent=-1;
i = 0;
printf("Enter number of edges\n");
scanf("%d",&m);
for(i=0;i< m;++i)
{
printf("enter an edge and wt\n");
scanf("%d %d %d", &e.node1,&e.node2,&e.wt);
}
sortedges(e,m);
clrscr();
printf("\n\nEdges of the tree\n");
i = 0;
while(k<=n)
{
if(checkcycle(parent,e.node1,e.node2))
{
cost=cost+e.wt;
}
k++;
i++;
}
printf("cost = %d",cost);
getch();
}
 

Similar threads

بالا