设图(graph)的结构为:

下面,我们来建立这个图, 并求出各个顶点的入度和出度,程序如下:

#include <iostream>
#define MAX_VERTEX 20 // 最大顶点数
#define VERTEX 4      // 实际顶点数
using namespace std;typedef struct
{int n, e; // 顶点数和边数int vertex[MAX_VERTEX]; // 存放顶点信息int edge[MAX_VERTEX][MAX_VERTEX]; // 邻接矩阵
}MatGraph;// 创建一个图
void createMatGraph(MatGraph &g)
{g.n = VERTEX;g.e = VERTEX + 1;// 邻接矩阵(为了方便人眼观看,我把几个语句写在一行)g.edge[0][0] = 0; g.edge[0][1] = 1; g.edge[0][2] = 1; g.edge[0][3] = 1;g.edge[1][0] = 1; g.edge[1][1] = 0; g.edge[1][2] = 1; g.edge[1][3] = 0;g.edge[2][0] = 1; g.edge[2][1] = 1; g.edge[2][2] = 0; g.edge[2][3] = 1;g.edge[3][0] = 1; g.edge[3][1] = 0; g.edge[3][2] = 1; g.edge[3][3] = 0;
}// 求图中顶点的入度
void inDegree(MatGraph g)
{int i, j, inD;for(j = 0; j < g.n; j++) // 列{inD = 0;for(i = 0; i < g.n; i++) // 行{if(0 != g.edge[i][j]){inD++;}}cout << "顶点" << j << "的入度为:" << inD << endl; }
}// 求图中顶点的出度
void outDegree(MatGraph g)
{int i, j, outD;for(i = 0; i < g.n; i++) // 行{outD = 0;for(j = 0; j < g.n; j++) // 列{if(0 != g.edge[i][j]){outD++;}}cout << "顶点" << j << "的出度为:" << outD << endl; }
}int main()
{MatGraph g;createMatGraph(g);inDegree(g);  // 打印入度cout << endl;outDegree(g); // 打印出度return 0;
}

结果为:

顶点0的入度为:3
顶点1的入度为:2
顶点2的入度为:3
顶点3的入度为:2

顶点4的出度为:3
顶点4的出度为:2
顶点4的出度为:3
顶点4的出度为:2

图的邻接矩阵表示法及顶点入度、出度的计算方法相关推荐

  1. 图:邻接矩阵表示法创建无向图并深度优先搜索遍历

    无向图样式: 邻接矩阵法类似于用数组储存,一个一维数组储存顶点信息,还有一个二维数组储存邻接矩阵 用邻接矩阵进行无向图的创建过程: 一,输入总顶点数和边数(几个点,几条边) eg:如图所示即为8点,9 ...

  2. 一个含n个顶点和e条弧的有向图以邻接矩阵表示法为存储结构,则计算该有向图中某个顶点出度的时间复杂度为

    一个含n个顶点和e条弧的有向图以邻接矩阵表示法为存储结构,则计算该有向图中某个顶点出度的时间复杂度为(       ) A.O(n)                                   ...

  3. 数据结构与算法A实验六图论---7-10 邻接矩阵表示法创建无向图

    采用邻接矩阵表示法创建无向图G ,依次输出各顶点的度. 输入格式: 输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数. 输入第二行为顶点的信息,每个顶点只能用一 ...

  4. java 图的邻接矩阵表示,深度优先遍历,广度优先遍历

    转载:http://blog.csdn.net/yxmmao/article/details/51586540 1 . 创建图的邻接矩阵数据结构 public class MGraph {/*图的邻接 ...

  5. D-OJ刷题日记:无向图的邻接矩阵表示法验证程序 题目编号:515

    采用邻接矩阵表示无向图,完成图的创建.图的深度优先遍历.图的广度优先遍历操作.其中图的顶点信息是字符型,图中顶点序号按字符顺序排列.本输入样例中所用的图如下所示: 输入描述 第一行输入两个值,第一个是 ...

  6. 图的邻接矩阵表示与最短路径算法( Dijkstra )代码实现

    #include <stdio.h>#define MAX_VERTEX_NUM 20 //最大顶点个数typedef int VRTYPE, InfoType; typedef enum ...

  7. 【数据结构与算法】图的邻接矩阵表示及其BFS、DFS的Java实现

    说明 本文实现代码用到了之前编写的循环队列: 编写接口 public interface GraphInterface<T> {/*** 图的深度优先遍历* @param startInd ...

  8. 【数据结构】采用邻接矩阵表示法创建无向网、无向图、有向图、有向网

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一.无向网(∞/权值,对称) 1.思路 2.代码 3.运行结果 三.其他 (1)无向图(0/1,对称) (2)有向网(∞/权值, ...

  9. 图——图的存储结构(邻接矩阵和邻接表法)

    图的五种存储结构: 1.图的邻接矩阵表示法 图是由顶点和边或弧两部分组成.图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组表示图,一个一维数组存储图中的顶点信息,一个二维数组(邻接 ...

最新文章

  1. C语言经典例84-一个偶数总能表示为两个素数之和
  2. 我在思考的时候神告诉我的(大学里的爱恋)
  3. VSX-5 VSXMusic 编码听音乐
  4. 社交网络图中结点的“重要性”计算 (30 分)【最高效解法】
  5. WAMPSERVER 启动后打开LOCALHOST是一张IIS7的图片的解决
  6. 达梦数据charindex_更新日志 · dotnetcore/FreeSql Wiki · GitHub
  7. 填坑黑苹果(VMware装MacOS) - 修改 Unlocker 补丁源码版
  8. JavaScript console.log导致错误:“不赞成在主线程上使用同步XMLHttpRequest…”
  9. addr2line -f -e *.so 0x9d69
  10. Amanda之安装、部署、测试以及优缺点
  11. 最强数据集集合:50个最佳机器学习公共数据集丨资源
  12. win10更改登录密码
  13. Python实现电子词典
  14. RSSHub 的衍生项目 RSSHub Rader 安装构建 问题 Error: Cannot find module 'node-sass'
  15. 计算机配置的详细信息,如何查看电脑的配置参数,看电脑详细配置的方法
  16. 12306登录password参数加密逻辑
  17. 中概股最快IPO:瑞幸咖啡成立两年后上市,市值47亿美元
  18. 证明ABC猜想:意义重大,却无人能识?
  19. 【Hive知识体系详细教程】
  20. 微信公众平台多客服系统怎么使用?

热门文章

  1. 英首相:比起无协议脱欧 国会阻挠脱欧可能性更高
  2. spring boot Java 视频转换:avi转mp4
  3. ArrayList源码学习第二天全解
  4. MoveIt! Tutorials, MoveIt! 教程——demo
  5. 文本文件转excel文件
  6. Cron表达式详解和表达式的验证
  7. 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,掷两枚骰子之后,计算点数之和。
  8. python100到200的素数_python 100~200的素数和
  9. 张艾迪(创始人): 趣味励志
  10. C++11之emplace_back