图的存储结构——邻接矩阵与边集数组

《数据结构与算法分析》图论算法--邻接表与拓扑排序 前言:       上一周一直在忙着准备阿里巴巴的笔试,花了大量时间复习以前的内容,不过感觉好像没有起到什么作用,现在不想这些问题了,先专心学习数据结构。现在终于来到了本科时遇到最头疼的图论了。本科时就只会在纸上画一画算法,现在我要亲手实现它们。 我的github: 我实现的代码全部贴在我的github中,欢迎大家去参观。 https://github.com/YinWen 阅读详情

图的存储结构——邻接矩阵与边集数组

专栏导读及目录https://blog.youkuaiyun.com/createprogram/article/details/86741044

用计算机处理图论问题,首先要用某种表达方式将图存放在计算机中,这里介绍两种最常用的存储结构,即邻接矩阵和边集数组。

邻接矩阵

(1)矩阵定义

用邻接矩阵表表示顶点之间相邻关系的矩阵。在图的邻接矩阵表示法中:

  • 用邻接矩阵表示顶点之间的相邻关系。
  • 用一个顺序表来存储顶点信息。

设图G的阶为n,则用A(G)来表示具有如下性质的n阶方阵:

A[i][j]=1,(Vi,Vj)或< Vi,Vj >是E(G)中的边。

A[i][j]=0 ,(Vi,Vj)或< Vi,Vj >不是E(G)中的边。

则a,b两图的邻接矩阵可以表示为:

Aa=|0 1 1 1|          Ab=|0 1 1|

      |1 0 1 1|                 |0 0 1|

      |1 1 0 0|                 |0 1 0|

      |1 1 0 0|

 

 

在无向图中,邻接矩阵是对称的。而在有向图中,邻接矩阵通常是不对称的。

由于邻接矩阵表示了两个顶点之间的连接情况,因此,还可以用它来表示带权图。此时邻接矩阵定义为:

A[i][j]=Wij,(Vi,Vj)或< Vi,Vj >是E(G)中的边。

A[i][j]=0 或无穷大,(Vi,Vj)或< Vi,Vj >不是E(G)中的边。

如图:

A1=|0  5  8  0  3 |     或     A2=|MAX   5      8    MAX     3|

      |5  0  2  0  6 |                    |5      MAX    2    MAX    6|

      |8  2  0 10 4 |                    |8         2   MAX    10      4|

      |0  0 10 0 11|                    |MAX  MAX 10  MAX    11|

      |3  6  4 11 0 |                    |3          6      4      11 MAX|

(2)需要特别说明的是:

  • 在简单应用中,可直接用二维数组存放图的邻接矩阵。
  • 无向图的邻接矩阵是对称矩阵,对数据规模特大的邻接矩阵可压缩存储。
  • 邻接矩阵表示法的空间复杂度S(n)=O(n^2)

 

 

边集数组

(1)边集数组定义

边集数组是利用一维数组存储图中所有边的一种图的表示方法。该数组中所含元边的个数要等于图中的边的条数,每个元素用来存储一条边的起点、终点和权(若含有权的话)。每个元素包含三个属性,因此建议先定义为结构体,再定义结构体数组。对于无向图,可选定变得任一端为起点或终点。各边在数组中的次序可以任意安排,也可以根据具体要求而定。

struct bian{
    int qidian;
    int zhongdian;
    int bianchang;
}bian[100];

(2)边集数组的特征

在边集数组中查找一条边或一个顶点的都需要扫描整个数组,所以其时间复杂度为O(e)。边集数组适合那些对边依次进行处理的运算,不适合对顶点的运算和对任一条边的运算。边集数组的表示通常包括一个边集数组和一个顶点 数组,所以其空间复杂度为O(n+e)。从空间复杂度上讲,边集数组也适合表示稀疏图。

数据结构复习之【图】 一、基本术语 图:由有穷、非空点集和边集合组成,简写成G(V,E); Vertex:图中的顶点; 无向图:图中每条边都没有方向; 有向图:图中每条边都有方向; 无向边:边是没有方向的,写为(a,b) 有向边:边是有方向的,写为 有向边也成为弧;开始顶点称为弧尾,结束顶点称为弧头; 简单图:不存在指向自己的边、不存在两条重复的边的图; 无 阅读详情

相关推荐

计算机考研复试之常问问题篇(3)

图的存储方式,优缺点?连通性的判断 (一)邻接矩阵 邻接矩阵是表示顶点之间相邻关系的矩阵。 邻接矩阵的好处: (1)直观、简单、好理解 (2)方便检查任意一对定点间是否存在边 (3)方便找任一顶点的所有“邻接点”(有边直接相连的顶点) (4)方便计算任一顶点的度 对于无向图,邻接矩阵的第i行(或第i列)非零元素(或非∞元素)的个数正好是第i个顶点的度。 对于有向图,邻接矩阵的第i行(或第i列)非零元素(或非∞元素)的个数正好是第i个顶点的出度(或入度)。 邻接矩阵的局限性:时间复杂度O(n2),空间复杂.

young_changge的博客 778

数据结构之图的存储表示(邻接矩阵、邻接表和边集数组)

图的存储结构相比线性表与树而言,更加复杂。图不可能用简单的顺序存储结构来表示,这是一个很困难的问题。所幸,一般有三种存储结构:邻接矩阵、邻接表和边集数组。邻接矩阵邻接矩阵是表示顶点之间相邻关系的矩阵。看图就知道了: (PS:感谢Covit大佬提供的皂片)上面的图片演示的是关于带权图,所以里面存储的是权值,如果是无向图的话,一般用1表示有边,0表示无边。从图的邻接矩阵存储方法(或称数组存储法)容翻译

摩尔的博客 1万+

海康SDK实战:如何从PS流中提取H264裸流并实现前端播放(附完整代码)

本文详细介绍了如何利用海康SDK从PS流中提取H264裸流,并构建无插件前端播放的完整链路。通过解析PS流结构、提取H264 ES流,结合WebSocket实时传输与WFS.js前端播放器,实现了低延迟、高可控性的视频流处理方案,为开发者提供了从数据源到前端渲染的实战代码与清晰指南。

weixin_29051811的博客 475

matlab 坐标变换矩阵,将边矩阵转换为坐标和拉普拉斯矩阵

unmesh将边矩阵转换为坐标和拉普拉斯矩阵语法[L,XY] = unmesh(E)说明[L,XY] = unmesh(E) 返回 M×4 边矩阵 E 的拉普拉斯矩阵 L 和网格顶点坐标矩阵 XY。边矩阵的每一行必须包含边端点 [x1y1 x2 y2] 的坐标。输入参数EM×4 边矩阵 E。输出参数L图形的拉普拉斯矩阵表示。XY网格顶点坐标矩阵。示例一个简单的正方形的顶点 (1,1)、(1,–1)...

weixin_33895652的博客 1129

BeckHoff <--> ABB 机器手 Profinet 通讯

本文介绍了BeckHoff PLC与ABB机器人通过PROFINET通信的实现方案。主要内容包括:1)通信接口的详细变量定义,涵盖输入/输出信号、设备状态监控、夹爪控制等关键功能位;2)全局数据结构和变量配置说明;3)机器人任务控制程序的实现方法,包括参数校验、任务指令下发和状态监控机制;4)重点分析了任务调度功能块的代码逻辑,涉及慢速模式处理、多参数配置和执行状态判断。该方案通过结构化变量定义和模块化程序设计,实现了PLC对机器人作业的精确控制,为工业自动化系统集成提供了可靠通信范例。

工控智联驿站 1032

手把手教你用TI MOSFET搭建0-100mA恒流源电路(附避坑指南)

本文详细介绍了如何使用TI MOSFET SI1204D搭建0-100mA恒流源电路,包括基础原理、电路设计、PCB布局和热管理技巧。通过分步指导和避坑指南,帮助工程师实现高精度、低成本的电流控制方案,适用于LED驱动、传感器激励等多种应用场景。

weixin_29310631的博客 482

第一章 图与网络的基本概念

图论第一章

weixin_43343408的博客 634

DDM-MIMO-FMCW雷达速度模糊与解模糊MATLAB仿真

本文深入解析了DDM-MIMO-FMCW雷达中的速度模糊现象及其解模糊方法,通过MATLAB仿真详细展示了相位编码解调、速度扩展算法和混合波形设计三大解决方案。文章还提供了参数配置、信号建模和结果可视化的实用技巧,并分享了工程实践中的避坑指南,帮助开发者高效解决雷达信号处理中的速度模糊问题。

weixin_31528001的博客 347

算法数据结构——图的存储结构(邻接矩阵、边集数组、邻接表、链式前向星、哈希邻接表)及相关应用(图的遍历、连通性、生成树、最短路径、网络流量、二分图问题)

这里的「流」指的是:网络上的流。:如果连通图 $G$ 是一个带权无向图,生成树 $T$ 是图 $G$ 的一个最小生成树,如果有另一棵生成树 $T_1$,$T_1 \ne T$,满足不存在树 $T^{'}$,$T^{'} \ne T$,且 $w(T^{'}) < W(T_1)$,则称 $T_1$ 是图 $G$ 的次小生成树。另一个哈希表用来存放顶点相连的边信息,哈希表的键是边的终点,值是边的权重。在下文中,我们约定用 $n$ 代表顶点数目,$m$ 代表边数目,$TD(v_i)$ 表示顶点 $v_i$ 的度。

白话机器学习 2062

SAP农产品增值税进项税解决方案

(三)购进农产品用于生产经营且不构成货物实体的(包括包装物、辅助材料、燃料、低值易耗品等),用于生产适用13%税率货物的扣除率为10%,用于生产适用9%税率货物的扣除率为9%。具体计算公式为: 当期允许抵扣农产品增值税进项税额=当期耗用农产品数量×农产品平均购买单价×扣除率/(1+9%)

weixin_44228539的博客 1194

基于YOLO的智能视频监控异常行为检测研究:从算法原理到落地部署的全栈实践

本文深入探讨如何利用 YOLO(You Only Look Once)系列算法构建一套端到端的异常行为检测系统。文章首先回顾 YOLOv8 在时空建模上的局限,然后提出“YOLO-STA(Spatio-Temporal Aggregation)”轻量级改进框架,在公开数据集 UCF-Crime 上将异常行为检测的 mAP@0.5 从 72.4 提升到 80.1;接着给出完整训练、推理、部署的 Python 代码(PyTorch + TensorRT),并介绍如何仅用 4 GB 显存的 Jetson Xavi

博客 1321

c语言图的邻接表存储结构,C语言:数据结构-图的存储结构-邻接矩阵

图的存储结构又称作图的存储表示或图的表示。它有多种表示方法,这里主要介绍邻接矩阵、邻接表和边集数组这三种方法邻接矩阵邻接矩阵 (adjacency matrix)是表示图形中顶点之间相邻关系的矩阵。设G=(V,E)是具有n个顶点的图,顶点序号依次为0、1、2、…、n-1,则G的邻接矩阵是具有如下定义的n阶方阵。例如,对于图7-1中的G1和G2,它们的邻接矩阵分别为下面的A1和A2所示。由A1可以看...

weixin_39563823的博客 453

如何使用 Python 爬虫爬取滴滴打车信息:获取司机和乘客数据

滴滴打车作为中国最大的打车平台之一,提供了丰富的司机和乘客数据,包括司机的车辆信息、乘客的评价、行程数据等。公开的司机和车辆信息(如司机的名字、车辆类型、评价等)可以通过网页直接获取,而乘客的个人信息和具体行程数据通常会受到隐私保护。在滴滴打车的网页中,司机的信息可能以特定的 HTML 标签存在,例如包含司机名称、车辆类型、车辆等级等信息。我们需要分析网页的 HTML 结构,找到这些数据所在的标签。同时,对于涉及到隐私的用户数据(如乘客的行程信息、用户评价等),我们必须特别谨慎,避免侵犯他人的隐私。

2201_76125261的博客 1917

图的存储结构

顶点数组为vertex[4]={V0,V1,V2,V3},弧数组arc[4] [4]是⼀个矩阵,这个矩阵的有向图并不对称,例如由V0到V3有弧,得到arc[0] [3]=1,⽽V3到V0没有弧,因此arc[3] [0]=0。我们可以设置两个数组,顶点数组为vertex[4]={V0,V1,V2,V3},边数组arc[4] [4]这个二维数组为对称矩阵(0表示不存在顶点间的边,1表示顶点间存在边)。那么图,是多对多的情况,图上的任何⼀个顶点都可以被看作是第⼀个顶点,任⼀顶点的邻接点之。

qq_59325159的博客 857

核心组件大换血:Backbone与Neck魔改篇:YOLO26魔改Neck:引入BiFPN(双向特征金字塔),多尺度融合能力飙升

本文深入解析了YOLO26目标检测模型中Neck部分的优化策略,重点探讨了BiFPN(双向特征金字塔网络)的原理与实现。文章首先指出YOLO26原生FPN+PAN结构在多尺度特征融合上的局限性,特别是在小目标检测和边缘部署场景中的性能瓶颈。随后系统梳理了Neck网络的演进历程,从FPN、PANet到BiFPN和ASFF,详细对比了各架构的特点。核心部分展示了如何将BiFPN引入YOLO26,包括可学习权重融合、双向跨尺度连接等关键技术实现,并提供了PyTorch代码示例。本文为需要提升小目标检测性能或优化边

ZDQ58818的博客 245

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数据结构——图的应用

图:元素之间存在多对多关系(线性表的元素之间存在前驱和后继,树的元素之间存在父子关系,图的任意元素之间都有可能存在关系)。 由顶点的有穷非空集合和顶点之间边的集合组成。 在图型数据结构中,数据被称为顶点,数据之间的关系补称为边。 在图中不允许出现没有点,但可以没有边。 G(V,E),V表示顶点的集合,E表示边的集合。 各种图的定义: 无向图:顶点与顶点之间没有方向,这种边称为无向边,边用无向序偶对...

qq_45067278的博客 5247

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

关于图的介绍

图:元素之间存在多对多关系(线性表的元素之间存在前驱和后继,树的元素之间存在父子关系,图的任意元素之间都有可能存在关系)。 由顶点的有穷非空集合和顶点之间边的集合组成。 在图型数据结构中,数据被称为顶点,数据之间的关系补称为边。 在图中不允许出现没有点,但可以没有边。 G(V,E),V表示顶点的集合,E表示边的集合。 各种图的定义: 无向图:顶点与顶点之间没有方向,这种边称为无向边,边用无向序偶对...

qq_44126789的博客 638

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数据结构之图

一、图的基本概念 1、图的定义 图是一种数据结构,图和树一样可以用二元组表示。它可定义为Graph=(V,R)其中,V={x|x∈datatype},R={VR},VR={|P(x,y)∧(x,y∈V)}。在图中,数据元素常称为顶点(Vertex),V是顶点的非空有穷集合;R是边(弧)的有穷集合。VR是两个顶点之间的关系集合。顶点之间关系可用序偶对来表示。若∈VR,则〈x,y>表示从x

Arvin_success的博客 641

数据结构:图

/** * 图:G(V,E) V顶点,E边 有向边<a,d> 无向边(a,d) * 无向完全图:任意2个顶点之间都存在边。共(n*(n-1) / 2)条边 * 有向完全图:任意2个顶点之间都存在方向互为相反的2条弧。 共 n*(n-1)条边 * 权:图中边带数字的 * 度:相邻边的数目。边数=每个顶点度的和*2 。 * 无向图的度:TD(V) * 有向图的度:入度ID(V)=出度OD(V) TD(V)=ID(V)+OD(V) * 连通分量:是一个图的子图;

qin的专栏 210

图相关(附相关算法JAVA源码)

一、相关定义 图(Graph) 由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 图中的数据元素称为顶点(Vertex)。 V是有穷非空集合,不能是空集。 顶点之间的逻辑关系用边来表示,边集可以是空的。 无向图(Undirected graphs) 无向边(Edge): 若两个顶点之间的边没有方...

biangu1486的博客 571

考研计算机知识点手册,2020考研计算机复习知识点:图

2020考研初试的时间已经越来越近了,大家的专业课的复习也要抓紧了,报考计算机的小伙伴要考哪些知识呢?跟着天任启航一起来看看图的知识点吧!1、图的存储结构图的存储结构有十字链表、邻接多重表、边集数组等。此外,图G=(V, E)有两种标准的表示方法,一个是邻接矩阵,另一个是邻接链表,这两种方法都可以表示有向图和无向图。邻接矩阵邻接矩阵是用两个数组来表示一个图:一个一维数组用来存储每个顶点的信息;一个...

weixin_39837607的博客 175

图学习总结(一)

图的逻辑结构与存储结构 一、图的逻辑结构 一、图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G=(V,E)。其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。 若顶点vi和vj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)。如果图的任意两个顶点之间的边都是无向边,则称该图为无向图。若从顶点vi到vj的边有方向...

a765528534的博客 387

数据结构-图

1.图的定义 图(graph)是由顶点的有穷非空集合和顶点之间边的集合组成。G(V,E)(V,是顶点集合;E,是边的集合) 相关概念: 顶点:线性表中,数据元素称为元素;树中,数据元素叫做结点;图中,称之为顶点。 无向边,无向图,无序对:**()表示 有向边(也称为弧Arc,有弧头、弧尾),有向图,有序对:&amp;lt;&amp;gt;**表示 稀疏图、稠密图 权、网 入度(以顶点为弧头)、出度(以顶点为弧尾)...

guys_19的博客 291

图

多对多关系。顶点的有穷非空集合和顶点之间边的集合构成,表示为G(V, E)。 数据元素在线性表中叫元素、树中叫结点、图中叫顶点vertex。边无方向称为无向边,用无序偶(Vi, Vj)来表示。有向边(也称为弧)用有序偶<Vi, Vj>来表示。<弧尾,弧头> 基础概念 简单图:不存在顶点到自身的边,且一条边不重复出现。 无向完全图:任意两个顶点之间...

albyc22660的专栏 234
上一篇: L1-040 最佳情侣身高差 (10 分)
下一篇: 图的最小生成树——Prim算法和Kruskal算法
黑色吊椅
博客等级 码龄9年 102粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值