图的存储结构:邻接矩阵法

  • 邻接矩阵法:
    • 邻接矩阵的定义:
    • 邻接矩阵存储无向图:
    • 邻接矩阵存储有向图:
    • 邻接矩阵存储网:
  • 邻接矩阵法的性质:
  • 邻接矩阵法的代码实现:
  • 矩阵运算A的n次幂的含义:
  • 性能分析:

邻接矩阵法:

邻接矩阵的定义:


注: 其实就是一个二维数组,用二维数组的值表示这俩个节点是否存在边

邻接矩阵存储无向图:


ps: 无向图的矩阵必定为对称矩阵,所以可以压缩成上三角存储

邻接矩阵存储有向图:

邻接矩阵存储网:


ps: 其实和存储图类似,只不过把要存储的值换成了边的权重

例:

PS: 无穷的表示:#define INFINITY //int的最大值

邻接矩阵法的性质:


行: 在有向图中,一个节点到另一节点的入度
列: 在有向图中,一个节点到另一节点的出度

邻接矩阵法的代码实现:

//空间复杂度O(n2)
#define MaxVertexTypeNum 100
typedef char VertexType;                            //顶点的类型
typedef int EdgeType;                               //边的类型
typedef struct{VertexType Vex[MaxVertexTypeNum];                //存放顶点的一维数组 EdgeType Edge[MaxVertexTypeNum][MaxVertexTypeNum];  //存放边的二维数组 int vexnum,arcnum;                               //顶点个数
}MGraph;

矩阵运算A的n次幂的含义:

例:
第一个11表示从B到E的一条路径
第二个1
1表示从B到E的另一条路径

结论: An[i][j] 表示从顶点Vi到顶点Vj长度为n的路径的条数

性能分析:

空间复杂度:O(|v|^2)

数据结构之图的存储结构:邻接矩阵法相关推荐

  1. 【数据结构】图的存储结构—邻接表

    目录 什么是邻接表? 邻接表:定义 邻接表:相关类 邻接表:基本操作 1)创建无向网 2)创建有向网 3)顶点定位 4)插入边 5)第一个邻接点 6)查询下一个邻接点 小试牛刀 对比邻接表与邻接矩阵

  2. 图的存储结构——邻接表法

    图的存储结构--邻接表法 一.邻接表 ​ 由顶点表和边表构成,顶点表由顶点域(data)和指向第一条邻接边的指针(firstarc)构成,边表(邻接表)结点由邻接点域(adjvex)和指向下一条邻接边 ...

  3. 【数据结构】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)及实现(C语言)

    目录 1. 邻接矩阵表示法 1.1 图的邻接矩阵 1.2 创建有向网的邻接矩阵 2. 邻接表表示法 2.1 图的邻接表存储结构 2.2 创建有向图的邻接表 3. 十字链表表示法 3.1 图的十字链表存 ...

  4. 数据结构之图的存储结构:邻接多重表

    图的存储结构:邻接多重表 产生条件: 邻接多重表的定义: 邻接多重表的代码定义: 删除: 性能分析: 十字链表与邻接多重表的对比 产生条件: 当用邻接矩阵法存储时:空间复杂度为O(|V|^2),太大 ...

  5. 数据结构之图的存储结构:邻接表法

    图的存储结构:邻接表法 产生条件: 邻接表法的定义: 邻接表法的特点: 邻接表法的代码定义: 邻接表法与邻接矩阵法的对比: 产生条件: 当用邻接矩阵存储时:空间复杂度为O(|v|^2),太大 邻接表法 ...

  6. 数据结构之图的存储结构二及其实现

    上一节我们讲述了邻接矩阵法实现图,本节再来讲述一下邻接链表法实现图. 邻接链表 邻接表是图的一种链式存储结构.在邻接表中,对图中的每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点vi边(对有 ...

  7. 数据结构之图的存储结构:十字链表法

    图的存储结构:十字链表法 思维导图: 产生条件: 十字链表法的定义: 十字链表法的代码定义: 性能分析: 思维导图: 产生条件: 当用邻接矩阵存储时:空间复杂度为O(|v|^2),太大 当用邻接表法存 ...

  8. 数据结构之图的存储结构一及其实现

    图的存储结构 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位置来表示元素之间的关系,即图没有顺序映像的存储结构,但可以借助数组的数据类型表示元素之间的关系. ...

  9. [转]数据结构:图的存储结构之邻接多重表

    1.引言: 若要删除左边的(V0,V2)这条边,需要对图下表的阴影两个结点进行删除操作. 2.邻接多重表的存储结构: iVex和jVex:是与某条边依附的两个顶点在顶点表中的下标. iLink:指向依 ...

最新文章

  1. 成都Uber优步司机奖励政策(1月9日)
  2. 异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案
  3. 简易无线电能接收方法
  4. UOJ#37. 【清华集训2014】主旋律
  5. ListView使用BaseAdapter与ListView的优化
  6. 轴系ansys命令流建模
  7. 淘宝API如何获取商品详情信息|sku|价格|店铺|优惠券|运费信息,淘宝商品详情API接口
  8. 《东周列国志》第八十三回 诛芈胜叶公定楚 灭夫差越王称霸
  9. elementui实现横向时间轴_element ui step组件在另一侧加时间轴显示
  10. LCP 03. 机器人大冒险-力扣双百代码
  11. 实用的Word文档翻译方法分享,让Word文档快速翻译
  12. web前端技术社区分享
  13. Python与C++语法比较--字符串篇
  14. Java使用aopse实现word转换pdf
  15. [Effective C++ --014]在资源管理类中小心copying行为
  16. VM安装CentOS虚拟机详细教程
  17. python SM2明文密码加解密
  18. skype安卓手机版_安卓:街机游戏大全~手机版
  19. java我的世界w_Minecraft我的世界Java版19w02a已发布
  20. [个人记录]半月板撕裂及SLAP损伤

热门文章

  1. oracle资产负债表重分类吗,【好会计】讲讲资产负债表中的重分类!
  2. python2.7.15安装步骤_升级到python2.7.15后安装pip
  3. css就近原则_细品100道CSS知识点(上)「干货满满」
  4. python中调用C++函数
  5. STM32-----找个搬砖的搬数据
  6. latex word相互转换
  7. M1 macbook值得购买吗?关于M1芯片macbook的三点购买建议
  8. cad在布局怎么调比例_大神们都在用的9个CAD制图技巧,你会用几个?
  9. python使用协程实现udp_python-socket和进程线程协程(代码展示)
  10. nuxt解决首屏加载慢问题_如何解决百度云盘下载速度慢的问题