📄 mgraph.h
字号:
#ifndef MGRAPH_H
#define MGRAPH_H
#include "head.h"
/*图的邻接矩阵表示方法*/
//typedef int VertexType;
typedef int AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
//邻接矩阵,对无 权 图 用 0,1表示相邻否 ,对带权图,则为权值
typedef struct
{
int vexs[MAX_VERTEX_NUM] ; //顶点向量
AdjMatrix arcs;//邻接矩阵, 对无 权 图 用 0,1表示相邻否 ,对带权图,则为权值
int vexnum; // 图的当前顶点数
int arcnum; //图的当前弧数
GraphKind kind ; //图的种类标志
} MGraph ;
/*基于邻接矩阵的一些相关的图的操作*/
Status GreateGraph(MGraph* G);
//采用邻接矩阵表示法,构造图G
Status GreateUDN(MGraph* G);
//采用邻接矩阵表示法,构造无向网G
Status GreateUDG(MGraph* G);
//采用邻接矩阵表示法,构造无向图G
Status GreateDG(MGraph* G);
//采用邻接矩阵表示法,构造有向图G
Status GreateDN(MGraph* G);
//采用邻接矩阵表示法,构造有向网G
int MGraphMGraphLocalVex(MGraph* G,int v);
//返回图中顶点的位置
void ShortestPath_DIJ(MGraph* G,int v0,int** P,int* D);
//用DiJstra算法求有向网G的v0顶点到其余顶点v的最短路径P[v]及其带权长度D[v]
//若p[v][w]为true,则w是从v0到v当前求得最短路径上的顶点
//final[v]为true,当且仅当v属于S,即已经求得从v0到v的最短路径
void ShortestPath_FLOYD(MGraph* G,int***P,int**D) ;
//用FLOYD算法求有向网G中各顶点v到w之间的最短路径P[v][w]及
//带权长度D[v][w],若P[v][w][u]为1,则u是从v到w当前求得最短
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -