C++实现用邻接矩阵存储的图,求顶点的度,求两顶点是否邻接 您所在的位置:网站首页 邻接矩阵计算度怎么求出来的 C++实现用邻接矩阵存储的图,求顶点的度,求两顶点是否邻接

C++实现用邻接矩阵存储的图,求顶点的度,求两顶点是否邻接

2024-07-17 00:17| 来源: 网络整理| 查看: 265

代码:

#include using namespace std; #define MAXVERTEXNUM 20 typedef enum { DG, UDG, DN, UDN }GraphKind;//图的类型{有向图、无向图、有向网、无向网} //图的邻接矩阵存储方式 typedef struct MGraph { char vex[MAXVERTEXNUM];//定点集 int edge[MAXVERTEXNUM][MAXVERTEXNUM];//边集 int vexnum, arcnum;//顶点数量,边数量 GraphKind kind;//图的类型 }MGraph; //在图G中查找顶点在顶点集中的下标位置 int LocateVex(MGraph *g, char v) { for (int i = 0; i vexnum; i++) { if (g->vex[i] == v) return i; } return -1; } //打印输出图的邻接矩阵表示 void PrintGraph(MGraph g) { switch (g.kind) { case 0:cout for (int j = 0; j int i, j; i = LocateVex(g,x); j = LocateVex(g,y); g->edge[i][j] = value; } //生成邻接矩阵存储的图 (无向图,有向图,无向网,有向网) void CreateGraph(MGraph *g) { int k = NULL; cout k; switch (k) { case 0:g->kind = DG; break; case 1:g->kind = UDG; break; case 2:g->kind = DN; break; case 3:g->kind = UDN; break; default:cout for (int j = 0; j vexnum; j++) { g->edge[i][j] = 0; } } //输入边 switch (k) { case 1:cout char temp[3]; cin >> temp; Setarc(g, temp[0], temp[1], 1); }; break; case 3:cout char temp[3]; int v; cin >> temp; fflush(stdin); cin >> v; Setarc(g, temp[0], temp[1], v); }; break; default:cout if (g->edge[site][i] != 0) degree++; } if (g->kind == UDG || g->kind == UDN) { cout if (g->edge[i][site] != 0) degree++; } cout if (g->kind == UDG || g->kind == UDN) { cout cout MGraph g; CreateGraph(&g); PrintGraph(g); cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有