当前位置: 首页 > news >正文

代码随想录算法训练营第三十九天| 图论理论基础

今天是图论入门的第一天,主要的学习内容主要是图论的理论基础。

图论理论基础

图的种类

图一般可以分为有向图和无向图,无向图是指边没有方向,有向图是指边有方向,其中,还存在一种加权有向图,指的是每条边上带有一定的权重。

有向图

无向图

加权有向图

图的度

接下来的一个概念是节点的度,指的是有几条边连接这个节点。

对于有向图,则可以细分为出度和入度,出度指的是从该节点出现的边,入度指的是指向该节点的边。例如对于节点3,出度为1,入度为2.

图的连通性 

在无向图中,任意两个节点都是可以到达的,我们称为连通图,相反则称为非连通图。

连通图

非连通图 

除此之外,对于有向图,如果任意两个节点都是可达的,我们称之为强连通图。

图的构造 

构造图一般有两种方法,即邻接表和邻接矩阵。

邻接表就是用一个二维数组对图进行存储,如果i点指向j点,那么grid[i][j]=1;对于无向图,grid[i][j]和grid[j][i]都为1.邻接表在存储点多边少的数据时会申请过大的二维数组,造成空间浪费。不适合用于存储稀疏图。

邻接表存储方法 

邻接矩阵是另一种图的存储方式,使用数组+链表的方式进行存储。

如图所示,节点1指向节点3和节点5,节点2指向节点4,节点3和节点5,以此类推。邻接表在存储稀疏图时有更好的空间利用率,但检查任意两节点是否存在边效率较低。

图的遍历方法

图的遍历方法主要分为两周:深度优先搜索(DFS),广度优先搜索(BFS)。


http://www.mrgr.cn/news/12582.html

相关文章:

  • LeetCode:反转区间内的链表
  • 2024年最大规模的“裁员潮”的起因经过
  • 备战秋招60天算法挑战,Day26
  • 类和对象(4)
  • 【uniapp/uview1.x】u-collapse 高度随内容自适应
  • 【开发心得】筑梦上海:项目风云录(1)
  • ARM程序的组成和执行过程
  • Kafka简单搭建及常用命令
  • 【数据结构与算法】深入理解归并排序(Merge Sort)
  • 一个简单的springboot项目(有源码)
  • Threadlocal+拦截器+JWT实现登录
  • 【Docker项目实战】使用Docker部署webtop桌面版Linux环境
  • 华为手机数据丢失如何恢复?
  • golang本地缓存fastcache高性能实现原理
  • sqlite3 在Python中使用
  • 筑牢技术防线:服务器故障后的应急响应与未来防范策略
  • 2024年8月22日嵌入式学习
  • Linux——文件系统层次结构,绝对路径
  • 视频提取字幕的软件有哪些?5款高识别率工具任你选
  • SpringBoot文档之构建包的阅读笔记