⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main71.c

📁 数据结构--c语言
💻 C
字号:
#include <stido.h>
#include <stdlib.h>
#define mvnum 100
#define maxint 32767
enum boolean{FALSE,TRUE};
typedef char vertextype;
typedef int adjmaxtrix;
typedef struct{
	vertextype vexs[mvnum];
	adjmatrix arcs[mvnum][mvnum];
}mgraph;
int d1[mvnum],p1[mvnum];
int d[mvnum][mvnum],p[mvnum][mvnum];
#include "save.c"
#include "dijkstra.c"
#include "floyd.c"
void main()
{
	mgraph *g;
	int m,n,e,v,w,k;
	int xz=1;
	g=(mgraph *)malloc(sizeof(mgraph));
	printf("输入图中顶点个数和边数n,e:");
	scanf("%d,%d",&n,&e);
	createmgraph(g,n,e);
	while(xz!=0){
		printf("******求城市之间的最短路径******\n");
		printf("================================\n");
		printf("1.求一个城市到所有城市的最短路径\n");
		printf("2.求任意的两个城市之间的最短路径\n");
		printf("================================\n");
		printf("  请选择:1 或 2,选择 0 退出 :");
		scanf("%d",&xz);
		if(xz==2)
		{
			floyd(g,n);
			printf(" 输入源点(或称起点)和终点:v,w:");
			scanf("%d,%d",&v,&w);
			k=p[v][w];
			if(k==0)
				printf("顶点 %d 到 %d 无路径!\n",v,w);
			else
			{
				printf("从顶点%d到%d的最短路径是:%d",v,w,v);
				while(k!=w)
				{
					printf("→%d",k);
					k=p[k][w];
				}
				printf("→%d",w);
				printf("  路径长度:%d\n",d[v][w]);
			}
		}
		else
			if(xz==1)
			{
				printf("求单源路径,输入源点v:");
				scanf("%d",&v);
				dijkstra(g,v,n);
			}
	}
	printf("结束求最短路径,再见!\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -