该函数的作用是创建一个无向图,其中包含了城市和路线的信息。函数会提示用户输入城市数和路线数,并根据输入的数量来初始化图的大小。然后,用户需要输入每个城市的名称,并将其存储在图的相应位置。接下来,用户需要输入每条路线的起点城市、终点城市和路径长度,并将这些信息存储在图的相应位置。最后,函数会将图返回给调用者。

函数代码如下:

void CreateMgraph(Mgraph &g){
	int i,j;
	char m[N],n[N];
	int m1,n1;
	printf("请输入城市数和路线数:");
	scanf("%d%d",&g.numVertexes,&g.numEdges);
	for(i=0;i<g.numVertexes;i++){
		g.vexs[i].num=i;
	}
	printf("请输入相对应的城市:\n");
	for(i=0;i<g.numVertexes;i++){
		printf("第%d个城市:",i+1);
		scanf("%s",&g.vexs[i].city);
	}
	for(i=0;i<g.numVertexes;i++){
		for(j=i;j<g.numVertexes;j++){
			if(i==j){
				g.arc[i][j]=0;
			}
			else{
				g.arc[i][j]=g.arc[j][i]=INFINITY;
			}

		}
	}
	printf("\n");
	printf("请输入%d条路经信息如下:\n",g.numEdges);
	printf("起点城市 终点城市 路径长度\n");
	for(i=0;i<g.numEdges;i++){
		scanf("%s%s",&m,&n);
		m1=zhuanhua(g,m);
		n1=zhuanhua(g,n);
		scanf("%d",&g.arc[m1][n1]);
	}
}

该函数的主要步骤如下:

  1. 输入城市数和路线数,并初始化图的大小。
  2. 输入每个城市的名称并存储在图的 vexs 数组中。
  3. 初始化邻接矩阵,将所有城市之间的距离设为无穷大,并将自身到自身的距离设为 0。
  4. 输入每条路线的起点城市、终点城市和路径长度,并存储在图的 arc 矩阵中。
  5. 返回构建好的无向图。

该函数使用邻接矩阵来表示无向图。邻接矩阵是一个二维数组,其中每个元素表示两个城市之间是否有路线连接。如果两个城市之间有路线连接,则对应的元素的值为路线长度,否则为无穷大。

该函数是创建无向图的常用方法之一,可以根据需要进行修改和扩展。

C语言无向图创建函数 CreateMgraph() 解释

原文地址: https://www.cveoy.top/t/topic/o1wZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录