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.拓补排序,关键路径暂不赘述~

相关推荐
倒头就睡的小比特3 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼3 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
m0_547486663 天前
《数据结构教程》全套 PPT课件2026
数据结构
旖旎夜光3 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark3 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her13 天前
并查集-听课笔记
笔记·算法·并查集
码流子3 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven3 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark3 天前
从算法设计模式看编程思维的抽象能力4
算法