monazer
29-12-2011, 19:11
با سلام این کدا الگوریتم پریمه که درخت پوشای مینیمال رو پیدا میکنه:
// prim1-1.cpp : main project file.
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace System;
using namespace std;
int f[100][100]={0} , w[10][10]={0} ,i,j, nv[50] , dis[50] , lv , n , min ;
void prim(int n , int w[][])
{
int i;
for (i=2 ; i<=n ; i++)
{
nv[i]=1;
dis[i]=w[1][i];
}
for (j=1 ; j<=n-1 ;j++)
{
int min = 32000;
for (i=2 ; i<=n ; i++)
if (dis[i]>=0 || dis[i]<min)
{
min = dis[i];
lv=i;
}
f[j][0] = nv[lv];
cout<< f[j][0];
f[j][1] = lv;
cout<< f[j][1];
f[j][2] = dis[lv];
cout<< f[j][2];
dis[lv]=-1;
for (i=2 ; i<=n ; i++)
if (w[lv][i]<dis[i])
{
dis[i]=w[lv][i];
nv[i]=lv;
}
}
}
void main()
{
int k,m,c,b;
cout<< "Enter number of Vertices = ";
cin>>n;
cout<< "Enter number of Edge = ";
cin>>m;
cout<< "\n Enter Nedges cost:";
cout<< "\n\t\t\t Example: from ross 1 ";
cout<< "\n\t\t\t to ross 2 ";
cout<< "\n\t\t\t with cost 15 \n";
for (k=1 ; k<=m ; k++)
{
cin>>i>>j>>c;
w[i][j]=c;
}
cout<< " visited vertices :";
prim(n,w[][]);
cin>>b;
}
در خط prim(n,w[][]); خطای error C2059: syntax error : ']' میگیره
و در خط void prim(int n , int w[][]) خطای error C2087: 'w' : missing subscript
لطف کنید راهنماییم کنید ممنون.
// prim1-1.cpp : main project file.
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace System;
using namespace std;
int f[100][100]={0} , w[10][10]={0} ,i,j, nv[50] , dis[50] , lv , n , min ;
void prim(int n , int w[][])
{
int i;
for (i=2 ; i<=n ; i++)
{
nv[i]=1;
dis[i]=w[1][i];
}
for (j=1 ; j<=n-1 ;j++)
{
int min = 32000;
for (i=2 ; i<=n ; i++)
if (dis[i]>=0 || dis[i]<min)
{
min = dis[i];
lv=i;
}
f[j][0] = nv[lv];
cout<< f[j][0];
f[j][1] = lv;
cout<< f[j][1];
f[j][2] = dis[lv];
cout<< f[j][2];
dis[lv]=-1;
for (i=2 ; i<=n ; i++)
if (w[lv][i]<dis[i])
{
dis[i]=w[lv][i];
nv[i]=lv;
}
}
}
void main()
{
int k,m,c,b;
cout<< "Enter number of Vertices = ";
cin>>n;
cout<< "Enter number of Edge = ";
cin>>m;
cout<< "\n Enter Nedges cost:";
cout<< "\n\t\t\t Example: from ross 1 ";
cout<< "\n\t\t\t to ross 2 ";
cout<< "\n\t\t\t with cost 15 \n";
for (k=1 ; k<=m ; k++)
{
cin>>i>>j>>c;
w[i][j]=c;
}
cout<< " visited vertices :";
prim(n,w[][]);
cin>>b;
}
در خط prim(n,w[][]); خطای error C2059: syntax error : ']' میگیره
و در خط void prim(int n , int w[][]) خطای error C2087: 'w' : missing subscript
لطف کنید راهنماییم کنید ممنون.