数据结构之图

数据结构 图(Graph) 在数据结构中,是一种非常重要的数据结构,用于表示不同的对象之间的关系。 阅读详情

存储结构

邻接矩阵

邻接矩阵适合于点少边多的图,而对于边少的图,可以考虑用邻接表。

临接表

图的遍历

深度优先遍历的方法如下。类似于树的前序遍历。同样可以采用递归实现。

a) 假设初始状态是图中所有顶点都未曾访问过,则可从图G中任意一顶点v为初始出发点,首先访问出发点v,并将其标记为已访问过。 
b) 然后依次从v出发搜索v的每个邻接点w,若w未曾访问过,则以w作为新的出发点出发,继续进行深度优先遍历,直到图中所有和v有路径相通的顶点都被访问到。 
c) 若此时图中仍有顶点未被访问,则另选一个未曾访问的顶点作为起点,重复上述步骤,直到图中所有顶点都被访问到为止。

一些概念

最小生成树

一个连通图的生成树是一个极小的连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边。那么我们把构造连通网的最小代价生成树称为最小生成树。 找连通网的最小生成树,经典的有两种算法,普里姆算法和克鲁斯卡尔算法。

数据结构——图 ( A[i][j] ) 表示顶点 ( i ) 到顶点 ( j ) 的边。对于无向图,( A[i][j] = A[j][i] )。对于加权图,( A[i][j] ) 存储权值;若无边,设为无穷大(或特殊值)。对于非加权图,( A[i][j] = 1 ) 表示有边,( 0 ) 表示无边。邻接表为每个顶点维护一个链表,链表存储该顶点的所有邻接顶点。对于加权图,链表节点还需存储权值。DFS 采用栈(显式或递归)的方式,从起始顶点开始,沿着一条路径尽可能深入,直到无法继续,然后回溯。 阅读详情

相关推荐

数据结构:图

数据结构:图;无向图和有向图;顶点的度;图的存储结构;图的邻接矩阵存储和邻接表存储;图的广度优先和深度优先搜索

天涯雨的博客 754

图的数据结构

图的表示(数组) 图的数据结构 /*** * 图 */ public class Graph { public HashMap<Integer,Node> nodes;//点 public HashSet<Edge> edges;//边 public Graph() { nodes = new HashMap<>(); edges = ne...

LaZY的博客 554

数据结构 图的邻接表

呃,下面该写邻接表了....... 邻接表的出现是因为图若是稀疏图,用邻接矩阵会造成空间的浪费,毕竟你要开辟一个一维数组和一个二维数组嘛,而且还是大开小用的那种。 邻接表为了避免内存的浪费引入了链式存储,它的处理办法是: 1.用一个一维数组存储顶点,当然你也可以用单链表存储, 2.用单链表存储顶点的邻接点,可以将顶点改为结构体数组,结构体中存放邻接点的指针,邻接点也创建一个结构体,定义指针...

夜雨柠檬 5万+

数据结构-图

一、图的定义与基本术语图(Graph)是一种非线性数据结构,由顶点(Vertex)和边(Edge)组成。:是图中的数据元素。:连接两个顶点的线,可以是有向的(表示两个顶点之间的关系有方向)或无向的(表示两个顶点之间的关系无方向)。:图中的边没有方向。:图中的边有方向。:每一对不同的顶点都有一条边相连。:相对于某一图来说,由部分顶点和边组成的图。:在无向图中,任意两个顶点都是连通的。:在有向图中,任意两个顶点之间都存在互相可达的路径。:无向图中的极大连通子图。:有向图中的极大强连通子图。

2302_80961196的博客 1177

利用featureCounts实现高效转录本定量:从比对到下游分析

本文详细介绍了利用featureCounts工具进行RNA-seq转录本定量的完整流程。从软件安装、输入文件准备,到核心命令参数解析与批量样本处理,再到将生成的计数矩阵无缝衔接至DESeq2进行差异表达分析,提供了从比对到下游分析的一站式实战指南。文章重点阐述了featureCounts在效率与易用性上的优势,并分享了常见问题排查与性能优化技巧,帮助研究者高效完成转录本定量这一关键步骤。

weixin_29069131的博客 319

6层高速PCB设计实战:BGA布局与阻抗匹配关键解析

本文深入解析6层高速PCB设计中BGA布局与阻抗匹配的关键技术。通过实战经验分享,详细介绍了六层PCB层叠结构的选择与优化、BGA器件布局技巧、阻抗匹配的实战经验以及高速布线技巧,帮助工程师提升PCB设计水平,确保信号完整性和电源完整性。

weixin_28481133的博客 369

【数据结构】图

💬 hello!各位铁子们大家好哇。今日更新了图的相关内容续上一篇《图和并查集》

qinjh_的博客 2951

实战分享:如何用Java调用Doris FE接口实现高效Stream Load数据导入(附完整代码)

本文详细介绍了如何通过Java调用Doris FE接口实现高效的Stream Load数据导入,包含完整代码示例和性能优化技巧。Stream Load作为Doris的高效数据导入方式,相比传统JDBC提升5-10倍速度,适用于大规模数据处理场景,帮助开发者解决高吞吐量数据导入挑战。

weixin_29304985的博客 419

【数据结构】图简介

前言一、图的概念二、图的术语三、图的表示1. 邻接矩阵2. 邻接表和逆邻接表3. 十字链表四、总结 一、图的概念 究竟什么是图呢?大家先来想一想咱们常用的互联网产品。 举个栗子,大家一定都用过微信,假设你的微信朋友圈中有若干好友:张三、李四、王五、赵六、七大姑、八大姨。 而你七大姑的微信号里,又有若干好友:你、八大姨、Jack、Rose。 微信中,许许多多的用户组成了一个多对多的朋友关系网,这...

码农印象 544

手把手教你用gmid方法设计二级运放:从理论到仿真全流程(附避坑指南)

本文详细介绍了使用gmid方法设计二级运放的全流程,从理论到仿真实践,特别针对初学者常见问题提供避坑指南。通过系统化的晶体管尺寸确定技术,帮助工程师在性能、功耗和面积之间找到最佳平衡点,适用于模拟集成电路设计中的关键模块开发。

weixin_29213525的博客 272

指纹对抗指南:如何绕过Cloudflare与Akamai的5s盾与浏览器指纹检测

现在的CDN反爬技术虽然越来越强,但是道高一尺魔高一丈,只要掌握了指纹伪造、流量伪装、行为模拟这些核心技术,就可以绕过绝大多数的防护措施。对抗过程中要注意效率和成本的平衡,小规模爬取用Playwright+stealth最方便,大规模爬取用curl_cffi+代理池性价比最高,遇到验证码用打码平台或者自动识别服务,不需要死磕破解。本文介绍的方案已经在实战中验证过,可以绕过95%以上的Cloudflare/Akamai防护,成功率非常高。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 299

【数据结构】图和并查集

💬hello!各位铁子们大家好哇。今日更新了并查集和图的相关内容。

qinjh_的博客 3445

《UDS协议从入门到精通》系列——图解0x2E:通过ID写数据

图解数据包格式+直观的通信示例,迅速认识0x2E服务!!

车载系统攻城狮 3602

数据结构之---- 图

图由顶点和边组成,可以被表示为一组顶点和一组边构成的集合。相较于线性关系(链表)和分治关系(树),网络关系(图)具有更高的自由度,因而更为复杂。有向图的边具有方向性,连通图中的任意顶点均可达,有权图的每条边都包含权重变量。邻接矩阵利用矩阵来表示图,每一行(列)代表一个顶点,矩阵元素代表边,用 1 或 0 表示两个顶点之间有边或无边。邻接矩阵在增删查操作上效率很高,但空间占用较多。邻接表使用多个链表来表示图,第 𝑖 条链表对应顶点 𝑖 ,其中存储了该顶点的所有邻接顶点。

weixin_43285931的博客 1203

【YOLOv11改进- 主干网络】YOLOv11+WTConv(ECCV2024): 基于YOLOv11的主干网络改进,大感受野的小波卷积

论文提出了WTConv,这是一个使用级联小波分解的层,并执行一组小卷积核的卷积,每个卷积专注于输入的不同频率带,并具有越来越大的感受野。这个过程能够在输入中对低频信息给予更多重视,同时仅增加少量可训练参数。实际上,对于一个  的感受野,可训练参数数量只随着  的增长而呈对数增长。而WTConv与常规方法的参数平方增长形成对比,能够获得有效的卷积神经网络(CNN),其有效感受野(ERF)大小前所未有。

qq_41304809的博客 1401

【Bluedroid】BLE连接过程详解

Bluedroid BLE的链接过程包括扫描、连接和通信三个基本步骤。通过这些步骤,中央设备和外围设备之间可以建立起稳定、高效的通信链路,实现数据传输和控制操作。

byte轻骑兵的技术小窝 1876

数据结构 - 图

在线性表中,数据元素之间是被串起来的,仅有线性关系,每一个数据元素只有一个直接前驱和一个直接后继。 在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素相关。但只能和上一层中一个元素相关。 图是一种更加复杂的数据结构,在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成的,通常表示为G(V,E),其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合。对于这个定义,我们需要明确几个

qq_39294387的博客 316

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数据结构(3)——图

由于本文章其中一些代码是本人很久以前写的,而有一些是本人现在写的,所以码风有些不同,请勿介意。

rooney2024的博客 2066

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

高阶数据结构--图(graph)

邻接顶点:在无向图中G中,若(u, v)是E(G)中的一条边,则称u和v互为邻接顶点,并称边(u,v)依附于顶点u和v;在有向图G中,若<u, v>是E(G)中的一条边,则称顶点u邻接到v,顶点v邻接自顶点u,并称边<u, v>与顶点u和顶点v相关联。E = {(x,y)|x,y属于V}或者E = {<x, y>|x,y属于V && Path(x, y)}是顶点间关系的有穷集合,也叫。是无序的,顶点对(x,y)称为顶点x和顶点y相关联的一条边,这条边没有特定方向,(x, y)和(y,x)

2401_87257864的博客 2980

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 数据库原理
下一篇: Spring基础(1)-从getbean开始
define_us
博客等级 码龄14年 157粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值