首页 > 其他 > 详细

学习代码6

时间:2020-06-16 13:31:56      阅读:40      评论:0      收藏:0      [点我收藏+]

include <stdio.h>

include <stdlib.h>

include <limits.h>

define limit INT_MAX //DG为0,UDG为INT_MAX

define MAX 20

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;jvexnum;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;
}
}

学习代码6

原文:https://www.cnblogs.com/joniky/p/13140059.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!