📄 short.cpp
字号:
//5、 图的结构建立和最短路径算法
//问题描述:利用邻接矩阵构造图,并求出某一顶点到其余顶点的最短路径并打印输出。
#define TRUE 1 //标志
#define FALSE 0 //标志
#define Maxint 0x8fffffff //最大整数值,不小于此值视为不连通
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
typedef char vnode;//顶点的名字
typedef struct
{
vnode **vex; //图的顶点
int vexnum,arcnum; //图的顶点数和弧数
unsigned int **arc; // 图的弧
}ALGraph;
#include"locatevex.h"
#include"creat.h"
#include"print.h"
#include"shortest.h"
//-----------------------主函数----------------------------------//
void main()
{
ALGraph *G;
char sou[10],dest[10];
char fi[15];
char c,ch;
int i;
G=(ALGraph*)malloc(sizeof(ALGraph));
printf(" ***-----------------------图的最短路径-------------------------------------***\n");
printf(" 班级:10010706 学号:2007302415 姓名:杨德刚\n");
printf(" ***------------------------------------------------------------------------***\n");
printf(" p: 求最短路径 q: 退出 \n");
printf(" ***------------------------------------------------------------------------***\n");
printf("请输入要进行的操作:");
scanf("%c",&c);
while(c!='q')
{
printf("创建图:\n");
printf("请选择图边信息存放方式(t:三元组)(m:矩阵):");
ch=getchar();
scanf("%c",&ch);
printf("请输入图信息存放文件名:");
scanf("%s",fi);
switch(ch)
{
case 't':creatGraph(G,fi);break;
case 'm':creatGraphm(G,fi);break;
}
printf("顶点为:");
for(i=0;i<G->vexnum;++i)
printf("%s ",G->vex[i]);
printf("\n");
printf("请输入起点:");
scanf("%s",sou);
printf("请输入终点:");
scanf("%s",dest);
shortestpath(G,sou,dest);
printf(" ***-----------------------------------------------------------------------***\n");
printf("请输入要进行的操作:");
c=getchar();
scanf("%c",&c);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -