Head.h
上传用户:yingjiejs
上传日期:2022-06-05
资源大小:841k
文件大小:1k
- #include <string>
- using namespace std;
- /*
- *头文件
- *主要声明函数头,结构体,常量
- */
- #define MaxSize 12
- #define MAX 10000 //INT_MAX-1
- #define MUL 3
- #define SIMGLE 1
- #define EVERYONE 8
- #define ONE 1
- //图的结构体,这里采用邻接矩阵
- typedef struct{
- string vertex[MaxSize]; //存放图中顶点的数组
- string vno[MaxSize]; //代号
- string ifo[MaxSize];//边的信息
- int arc[MaxSize][MaxSize];//图节点的邻接矩阵
- string arcifo[MaxSize][MaxSize];//节点的每条弧的信息
- int vertexNum; //图的顶点数和边数
- }MGraph;
- //设置为全局变量
- static int dist[MaxSize]; //最短长度
- static int path[MaxSize]; //最短路径
- static int s[MaxSize];
- static int beginv,endv;
- static int v;
- //图的初始化函数
- void InitGraph(MGraph &M,int* a,string* v,string *no,string *vifo,string arcifos[][8], int n );
- //输出整张图的信息
- void PutOutVexInfo(MGraph &M);
- //输出所有边的权重
- void PutOutArcInfo(MGraph &M);
- //改变某一条弧的权重
- void SetArc(MGraph &M,int v1,int v2,int arclength);
- //删除某一个弧
- void DeleteArc(MGraph &M,int n, int w);
- //计算最短路径
- void Dijkstra(MGraph &M,int beginv1,int endv1,int road);
- //到某个顶点的路径
- void to_vex(MGraph &M,int endv);
- void to_vexs(MGraph &M);
- //菜单
- void nemu();