定义

  邻接矩阵(Adjacency Matrix):是表示顶点之间相邻关系的矩阵。设G=(V,E)是一个图,其中V={v1,v2,…,vn}。G的邻接矩阵是一个具有下列性质的n阶方阵:

特点

  无向图的邻接矩阵一定是对称的,而有向图的邻接矩阵不一定对称。因此,用邻接矩阵来表示一个具有n个顶点的有向图时需要n2个单元来存储邻接矩阵;对有n个顶点的无向图则只存入上(下)三角阵,故只需n(n+1)/2个单元。
  无向图邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的度。
  有向图邻接矩阵中第i行非零元素的个数为第i个顶点的出度,第i列非零元素的个数为第i个顶点的入度,第i个顶点的度为第i行与第i列非零元素个数之和。
  用邻接矩阵表示图,很容易确定图中任意两个顶点是否有边相连。

邻接矩阵的C语言描述

  用一个顺序表来存储顶点信息
  

图的邻接矩阵表示法

  1.图的邻接矩阵表示法
  在图的邻接矩阵表示法中:
  ① 用邻接矩阵表示顶点间的相邻关系
  ② 用一个顺序表来存储顶点信息
  2.图的邻接矩阵(Adacency Matrix)
  设G=(V,E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵:
  

  【例】下图中无向图G 5 和有向图G 6 的邻接矩阵分别为A l 和A 2 。
  

  3.网络的邻接矩阵
  若G是网络,则邻接矩阵可定义为:
  

  其中:
  w ij 表示边上的权值;
  ∞表示一个计算机允许的、大于所有边上权值的数。
  【例】下面带权图的两种邻接矩阵分别为A 3 和A 4 。
  

  4.图的邻接矩阵存储结构形式说明
  #define MaxVertexNum l00 //最大顶点数,应由用户定义
  typedef char VertexType; //顶点类型应由用户定义
  typedef int EdgeType; //边上的权值类型应由用户定义
  typedef struct{
  VextexType vexs[MaxVertexNum] //顶点表
  EdeType edges[MaxVertexNum][MaxVertexNum];
  //邻接矩阵,可看作边表
  int n,e; //图中当前的顶点数和边数
  }MGragh;
  注意:
  ① 在简单应用中,可直接用二维数组作为图的邻接矩阵(顶点表及顶点数等均可省略)。
  ② 当邻接矩阵中的元素仅表示相应的边是否存在时,EdgeTyPe可定义为值为0和1的枚举类型。
  ③ 无向图的邻接矩阵是对称矩阵,对规模特大的邻接矩阵可压缩存储。
  ④ 邻接矩阵表示法的空间复杂度S(n)=0(n 2 )。
  5.建立无向网络的算法。
  void CreateMGraph(MGraph *G)
  {//建立无向网的邻接矩阵表示
  int i,j,k,w;
  scanf("%d%d",&G->n,&G->e); //输入顶点数和边数
  for(i=0;in;i++) //读人顶点信息,建立顶点表
  G->vexs =getchar();
  for(i=0;in;i++)
  for(j=0;jn;j++)
  G->edges
[j]=0; //邻接矩阵初始化
  for(k=0;ke;k++){//读入e条边,建立邻接矩阵
  scanf("%d%d%d",&i,&j,&w);//输入边(v i ,v j )上的权w
  G->edges[j]=w;
  G->edges[j]
=w;
  }
  }//CreateMGraph
  该算法的执行时间是0(n+n 2 +e)。由于e
  根据图的定义可知,图的逻辑结构分为两部分:V和E的集合。因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,称这个二维数组为邻接矩阵。邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵。
  

邻接矩阵(adjacency matrix)的Matlab表达

  N = 4;
  dag = zeros(N,N);
  C = 1; S = 2; R = 3; W = 4;
  dag(C,[R S]) = 1;
  dag(R,W) = 1;
  dag(S,W)=1;

邻接矩阵(Adjacency Matrix)相关推荐

  1. 图数据结构之邻接矩阵Adjacency Matrix(Python版)

    对于图这样的数据结构,我们在 图数据结构之字典实现(Python版) 有一种示例,可以表示出从起点出发有多少条路径选择,然后到达某个指定的终点,下面来看下另外一种图的数据结构. 邻接矩阵:顾名思义就是 ...

  2. 数据结构与算法(C++) -- adjacency matrix

    #include <iostream> using namespace std;// 用邻接矩阵表示图, 顶点 边 // 邻接矩阵为对称阵(两个定点相互是相连的), 对角元素为0(顶点与自 ...

  3. 十六.Elasticsearch Adjacency Matrix Aggregation

    #下面的执行语句基于6.6版本,新版本把"_doc"去掉即可 PUT /emails/_doc/_bulk?refresh { "index" : { &quo ...

  4. a - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历_数据结构--图

    故事凌 今天 基本知识点 图可说是所有数据结构里面知识点最丰富的一个, 自己笨的知识点如下: 阶(oRDER), 度: 出度(out-Degree), 入度(in-Degree) 树(Tree), 森 ...

  5. (王道408考研数据结构)第六章图-第二节1:图的存储结构(邻接矩阵、邻接表、十字链表和邻接多重表)

    文章目录 一:邻接矩阵--适合存储稠密图 (1)邻接矩阵定义 (2)代码 二:邻接表 (1)邻接表定义 (2)代码 (3)邻接表和邻接矩阵对比 三:十字链表(用于有向图) 四:邻接多重表(用于优化无向 ...

  6. 拉普拉斯矩阵(Laplacian matrix)及其变体详解

    拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵.基尔霍夫矩阵或离散拉普拉斯算子,是图论中用于表示图的一种重要矩阵. 定义 给定一个具有 n n n个顶点的简单图 G = ( V , ...

  7. 拉普拉斯矩阵(Laplacian matrix)及其变体

    拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵.基尔霍夫矩阵或离散拉普拉斯算子,是图论中用于表示图的一种重要矩阵. 定义 给定一个具有 n 个顶点的简单图 G = ( V , E ) ...

  8. 图的建立——邻接矩阵

    通过邻接矩阵的方式建立图 邻接矩阵(Adjacency Matrix)的存储结构就是通过一维数组存储图中顶点的信息,用矩阵表示图中各个顶点的的临界关系,而矩阵通过一个二维数组表示. 图的分类 在矩阵中 ...

  9. 数据结构—邻接矩阵存储法代码实现

    邻接矩阵法 图的邻接矩阵(adjacency matrix)是一种采用邻接矩阵数组表示顶点之间相邻关系的存储结构.设G=(V,E)是含有n(n>0)个顶点的图,各顶点的编号为0~(n-1),则G ...

  10. 数据结构(C++)——图:基于邻接矩阵实现的图结构

    抽象数据类型 操作接口:图支持的操作接口分为边和顶点两类 Graph模板类 typedef enum { UNDISCOVERED, DISCOVERED, VISITED } VStatus; // ...

最新文章

  1. 用Selenium 爬虫下载文件,解除Chrome 下载警告 (Keep or Discard),设置下载目录的方法
  2. 升职加薪必看!如何试出一个Java开发者真正的水平
  3. macpro台式计算机,Mac Pro正式上架 真的可以用来刨土豆丝
  4. LeetCode 1023. 驼峰式匹配(暴力匹配)
  5. php自然排序法的比较过程,PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)...
  6. SPH(光滑粒子流体动力学)流体模拟实现七:屏幕空间流体渲染(SSF)
  7. 前端代码——前端代码规范(含html、css、javascript、vue等)
  8. 管理系统中计算机er图怎么画,使用PowerDesigner绘制ER图的详细教程
  9. 上海通用北盛汽车2012届校园招聘长春理工大学专业面试安排 共 27 人
  10. 软件考试(一)计算机技术与软件专业技术资格(水平)考试(以下简称软件水平考试)含金量最高,与职称挂钩。
  11. 蓝牙传输速率详细分析【针对蓝牙4.2]
  12. 【2022-03-23】JS逆向之爱奇艺滑块
  13. 活体检测Face Anti-spoofing前世今生:作者(Fisher Yu )
  14. 力天创见客流方案分析
  15. Tarena - 基础查询
  16. C# StreamRead和StreamWrite
  17. 字符串(字节)长度计算
  18. 谁能成功抢位操作系统,谁就能掌握未来汽车产业发展的主动权
  19. 编译可调试的ffmpeg 开关解释
  20. 【谷粒商城高级篇】商品服务 商品上架

热门文章

  1. 2022陈箫箫胡程灿信息论课程作业 MIMO信道(multi-input multi-output,MIMO)简介
  2. 按键1按下数码管显示1,按键2按下数码管显示2,按键3按下8个LED灯实现流水灯效果;
  3. Cent OS (一)Cents OS的基本安装
  4. W25Q128FV译文(一)
  5. volatility 基本用法
  6. cisco设备与基本操作
  7. 盛诺基和信达生物达成临床研究合作
  8. Linux命令之ps命令
  9. 推荐系统 - 多目标模型融合部分
  10. Android实现录音功能及播放语音功能