中国太平人寿车险电话:请教这个数据结构的问题!!!

来源:百度文库 编辑:中科新闻网 时间:2024/05/02 17:10:48
#include <stdio.h>
#include "graph11.c"
#define vertexMaxNum 20
#define maxLengh 5
typedef struct
{
char adjvex[maxLengh+1];
int low;
}closedge[vertexMaxNum];
int mini(closedge sz,G g)
{
int i,j,k,min;
i = 0;
while(!sz[i].low)
i++;
k = i;
min = sz[i].low;
for(j = i+1;j<g.vertexNum;j++)
{
if(sz[j].low<min)
{
min = sz[j].low;
k = j;
}
}
return k;
}

void miniSpanTreePrim(G g,char *v)
{
int i,j,k,h;
closedge au;
h = Position(g,v);
for(i = 0;i<g.vertexNum;i++)
{
strcpy(au[i].adjvex ,v);
if(i!=h)
au[i].low =g.adc[h][i].adj;
}
au[h].low = 0;
printf("the min spantree is follow:\n");
for(i = 0;i<g.vertexNum;i++)
{
k = mini(au,g);
printf("(%s---%s)",au[i].adjvex,g.vex[k]);
au[k].low = 0;
for(j = 0;j<g.vertexNum;j++)/*问题好想出在这!*/
{
if(g.adc[j][k].adj<au[j].low)
{
au[j].low = g.adc[j][k].adj;
strcpy(au[j].adjvex,g.vex[k]);

}
}
}

}
main()
{
G g;
CreatDNraph(&g);
printf("the graph is follow:\n");
PrintDNraph(g);
miniSpanTreePrim(g,"1");
printf("\nfinish!");
getche();
}

帮忙看一下这个最小生成树的算法,运行出来有问题!!

你最好先把问题简单说一下吧。

看别人的程序真的很头疼,建议你去看下书,很多书上有的。

问一下,你的最小生成树算法用的是普里姆算法吗?