这是我自己写的,数据结构课程设计。不过有bug,而且在实现最小生成树的时候并未实现,尚需调试,望指教!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define INFINITY 9999
#define MaxVNum 30
#define MaxCost 9999
#define Max_Length 5000
typedef char* vexType;
typedef struct {
int adj; /*边对应顶点的邻接关系*/
char *info; /*边相关信息,可有可无*/
} Edge,AdjMatrix[MaxVNum][MaxVNum];
typedef struct {
char *num; /*建筑物编号,将编号*/
char *name; /*建筑物名称*/
char *intro; /*建筑物简介*/
}Vex,vex[MaxVNum];
typedef struct {
vex vexs; /*用一位数组表示顶点向量*/
AdjMatrix edges; /*邻接矩阵*/
int vexNum,edgeNum;
}MGraph;
typedef struct {
vexType adjvex;
int lowcost;
}closedges;
int Location(MGraph M,vexType v){
int i;
for(i=0;i<M.vexNum;i++){
if(strcmp(M.vexs[i].num,v)==0)
return i;
}
printf(" Vex error!/n");
exit(-1);
}
MGraph CreatUDN(){
MGraph G;
FILE *fp;
char c;
int i,j,k,w,count,x,y,p;
int count2=1;
int weight;
char v1[200]={'/0'};
char v2[200]={'/0'};
char store[Max_Length]={'/0'};
char EdgeWeight[200]={'/0'};
G.vexNum = 16;
G.edgeNum = 21;
G.vexs[0].num="0";
G.vexs[1].num="1";
G.vexs[2].num="2";
G.vexs[3].num="3";
G.vexs[4].num="4";
G.vexs[5].num="5";
G.vexs[6].num="6";
G.vexs[7].num="7";
G.vexs[8].num="8";
G.vexs[9].num="9";
G.vexs[10].num="10";
G.vexs[11].num="11";
G.vexs[12].num="12";
G.