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

📄 mgraph.h

📁 完全由C语言实现的图的相关操作
💻 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 + -