typedef enum{DN,DG,UDN,UDG}graphkind; //图类型声明
typedef int adjtype; //权值类型
typedef char vertexdata; //顶点向量
typedef struct{ //顶点结构定义
adjtype adj;
}arcnode;
typedef struct{ //矩阵结构体定义
graphkind kind;
int vexnum,arcnum; //顶点,边
vertexdata vertex[MAX];
arcnode arcs[MAX][MAX];// 连接相邻矩阵
}adjmatrix;
//函数声明
void createDN(adjmatrix *G);
int LocateVX(adjmatrix *G,vertexdata v);
int main(int argc, char *argv[]) {
adjmatrix G;
createDN(&G);
return 0;
}
int LocateVX(adjmatrix *G,vertexdata v) {
int i=-1,j;
for(j=0;j
if(G->vertex[j]==v){
i=j;
break;
}
return i;
}
}
void createDN(adjmatrix *G){
int i,j,r;
adjtype weight;
vertexdata v1,v2;
printf("请输入顶点个数;");
scanf("%d",&G->vexnum);
printf("请输入边个数;");
scanf("%d",&G->arcnum);
for(i=0;i<G->vexnum;i++) //矩阵初始化
for(j=0;j<G->vexnum;j++)
G->arcs[i][j].adj=limit;
printf("请输入顶点信息,连续输入无空格;");
fflush(stdin);
for(i=0;i<G->vexnum;i++)
scanf("%c",&G->vertex[i]);
printf("请输入起点,终点,权值;");
for(r=0;r<G->arcnum;r++) {
printf("第%d-%d条",&G->arcnum,r+1);
fflush(stdin);
scanf("%c,%c,%d",&v1,&v2,&weight);
i=LocateVX(G,v1);
j=LocateVX(G,v2);
// if(j==-1) printf("输入错误\n");
G->arcs[i][j].adj=weight;
}
}
原文:https://www.cnblogs.com/joniky/p/13140059.html