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

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

图论理论基础

图的种类

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

有向图

无向图

加权有向图

图的度

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

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

图的连通性

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

连通图

非连通图

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

图的构造

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

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

邻接表存储方法

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

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

图的遍历方法

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

相关推荐
冻柠檬飞冰走茶8 小时前
PTA基础编程题目集 7-11 分段计算居民水费(C语言实现)
c语言·开发语言·算法
得物技术8 小时前
推荐系统体验的数字化突破:得物自动化评测平台的技术实践|AICon 文章整理
算法·架构·llm
VALENIAN瓦伦尼安教学设备8 小时前
转子/行星/平行轴齿轮箱综合故障模拟实验台可复现常见机械问题
大数据·数据库·人工智能·嵌入式硬件·算法
rannn_1118 小时前
【力扣hot100】哈希表专题——从两数之和到最长连续序列
java·算法·leetcode·哈希
lingran__8 小时前
C++_stack和queue和priority_queue(容器适配器)
开发语言·c++
小保CPP8 小时前
OpenCV C++基于极值区域滤波算法的场景文本检测(OCR)
c++·人工智能·opencv·算法·计算机视觉·ocr
星恒随风9 小时前
C++ 多态底层原理:静态绑定、动态绑定、虚函数表与工程实践
开发语言·c++·笔记·学习
白色冰激凌9 小时前
[SECS/GEM研究] (四)HSMS 用TCP取代串口
网络·c++·网络协议·secs/gem
来一碗刘肉面9 小时前
字符串模式匹配(朴素模式匹配算法与KMP算法)
数据结构·算法
dyxal9 小时前
eˣ 的泰勒展开式:从“化繁为简”到“万物统一”的微积分之美
算法