PDA

نسخه کامل مشاهده نسخه کامل : کمک الگوریتم پریم



masoudkakoee1988
18-12-2009, 02:49
سلام کسی کد پیاده سازی الگوریتم پریم درس طراحی الگودیتم رو به زبان cداره

الناز م
20-12-2009, 00:30
سلام اين كد الگوريتم پريم فقط يه خورده بهم ريخته است درستش كن.:20:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

struct krus{
int v1;
int v2;
int weight;
};
int perim (int set[],struct krus edge[],int n,int m);
void sort(struct krus ed[],int m);
void main()
{
clrscr();
int n,m;
cout<<"Input Num Vertex : ";
cin>>n;
int set[10];
for (int i=0;i<n;i++)
set[i]=i;
cout<<"Input Num Yal : ";
cin>>m;
int k=0;
struct krus edge[20];
for (i=0;i<m;i++)
{
cout<<" Num V1 : "; cin>>edge[i].v1;
cout<<" Num V2 : "; cin>>edge[i].v2;
cout<<" Weight : "; cin>>edge[i].weight;
if (edge[i].weight>k){
k=edge[i].weight;
}
gotoxy(wherex()+30,wherey()-2);
cout<<"("<<edge[i].v1<<","<<edge[i].v2<<") => W :"<<edge[i].weight<<"\n";
gotoxy(1,wherey()+2);
}
cout<<"\nWeight Is : "<<k;//perim(set,edge,n,m);
getch();
}
//***********************************************
int perim(int set[],struct krus edge[],int n,int m)
{
int fe=0;
int p=0;
struct krus e;
while (fe<n-1)
{
//********************************
int y=0;
e.weight=0;
for (int i=0;i<m;i++)
if ((set[edge[i].v1]==0 && set[edge[i].v2]!=0) || (set[edge[i].v2]==0 && set[edge[i].v1]!=0))
{
if(y==0)
{
e=edge[i];
y++;
}
else
if (e.weight>edge[i].weight)
e=edge[i];
}
//**********************************
if (y!=0)
{
p+=e.weight;
cout<<"("<<e.v1<<","<<e.v2<<") => W :"<<e.weight<<"\t";
set[e.v1]=0;
set[e.v2]=0;
fe++;
}
else
break;
}
return p;
}

masoudkakoee1988
29-01-2010, 02:26
salam mamnonn az kodet kar mikone faghat mishe tozihat mokhtasari raje be kod bedi