DS冲刺整理做题定理(三)图论合集

第三期,总结性地来说一下图论,也是数据结构中最核心最难的一章~


目录

一.图的基本概念

二.图的存储及其基本操作

三.图的遍历

四.图的应用


在数学中,图是描述于一组对象的结构,其中某些对象对在某种意义上是"相关的"。这些对象对应于称为顶点的数学抽象(也称为节点或点),并且每个相关的顶点对都称为边(也称为链接或线)。通常,图形以图解形式描绘为顶点的一组点或环,并通过边的线或曲线连接。

图G=(V,E)是一个二元组(V,E)使得E⊆[V]的平方,所以E的元素是V的2-元子集。为了避免符号上的混淆,我们总是默认V∩B=Ø。集合V中的元素称为图G的定点(或节点、点),而集合E的元素称为边(或线)。通常,描绘一个图的方法是把定点画成一个小圆圈,如果相应的顶点之间有一条边,就用一条线连接这两个小圆圈,如何绘制这些小圆圈和连线时无关紧要的,重要的是要正确体现哪些顶点对之间有边,哪些顶点对之间没有边。

图可用于在物理、生物、社会和信息系统中建模许多类型的关系和过程,许多实际问题可以用图来表示。因此,图论成为运筹学、控制论、信息论、网络理论、博弈论、物理学、化学、生物学、社会科学、语言学、计算机科学等众多学科强有力的数学工具。在强调其应用于现实世界的系统时,网络有时被定义为一个图,其中属性(例如名称)之间的关系以节点和或边的形式关联起来。

一.图的基本概念

1.完全图:有n(n-1)/2条边的无向图~

2.子图:某个图边集和点集的子集所构成的生成子图~

3.连通:在任意两个顶点之间都存在着边~(无向图的极大连通子图称为连通分量)

4.对于有向图:如果任意两点之间都有双向路径,则该图被称为强连通的;有向图中的极大强连通子图称为有向图的强连通分量~

5.生成树:包含图中所有顶点的一个极小连通子图~

(极小连通子图:既要保持图连通又要使得边数最少得子图~)

6.简单路径:顶点不重复出现的路径~

二.图的存储及其基本操作

1.邻接矩阵:将结点之间的关系存储在一个矩阵中,无向图和有向图的略有不同~

2.邻接表法:将每个节点所连通的结点以链表的方式接在后面,并以此类推~

3.十字链表:专用于有向图的链式结构,分为弧结点和顶点结点两种,对于Vi的尾和头都容易找到

4.邻接多重表:专用于无向图的链式结构,同样分为两种结点~

三.图的遍历

1.DFS:深度优先搜索,类比图的先序遍历~

2.BFS:广度优先搜索,类比与二叉树的层序遍历~

四.图的应用

1.最小生成树:生成树包含所有顶点,并且尽可能包含少的边;若某棵生成树的权值之和最小,则其称为最小生成树~

2.Prim是根据边来构造最小生成树的过程,克鲁斯卡尔算法则是通过每次挑选权值最小的边~

3.迪杰斯特拉算法用于计算单源最短路径,而弗洛伊德则可以找到所有顶点之间的最短路径~

4.拓补排序,关键路径暂不赘述~

相关推荐
偷吃的耗子30 分钟前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
dazzle1 小时前
机器学习算法原理与实践-入门(三):使用数学方法实现KNN
人工智能·算法·机器学习
那个村的李富贵1 小时前
智能炼金术:CANN加速的新材料AI设计系统
人工智能·算法·aigc·cann
张张努力变强2 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
万岳科技系统开发2 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
wWYy.2 小时前
数组快排 链表归并
数据结构·链表
张登杰踩2 小时前
MCR ALS 多元曲线分辨算法详解
算法
YuTaoShao2 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法一)排序+滑动窗口
算法·leetcode·排序算法
波波0072 小时前
每日一题:.NET 的 GC是如何分代工作的?
算法·.net·gc
风暴之零2 小时前
变点检测算法PELT
算法