C++图的基本概念流食般投喂-竞赛编

声明:以下知识相关资料来自比特官网和小编手搓~
图的基本概念:

++1、图的定义++

++2、有向图和无向图++

++3、简单图与多重图++

++4、稠密图和稀疏图++

++5、顶点的度++

++6、路径++

++7、简单路径与回路++

++8、路径长度和带权路径长度++

++9、子图++

++10、连通图与连通分量++

++11、生成树++

1、图的定义

回顾:前面我们已经学习了一对一、一对多的数据与数据之间的关系,分别是线性表,以及树形结构。

现在我们要学习一个新的数据与数据之间的关系,即多对多,这就是图形结构。

甩来一个官方的定义:

2、有向图和无向图

有向图和无向图的区分条件:就是根据图的边的类型区分的,看顶点和顶点之间的边有没有指向性。

注意:

在有关图的算法题中,常常会将无向图变成有向图,这样,图的存储方式就固定,很方便。

无向图 -> 有向图:将无向图中的边看成两条方向相反的有向边。

3、简单图与多重图

简单图:若图中没有重边和自环,为简单图。

多重图:若图中有重边或自环,为多重图。

自环:自己指向自己的一条边。

重边:图中存在两个或两个以上完全相同的边(全是从同一个顶点指向另一个一样的顶点)

简单图与多重图的整体展示:

4、稠密图和稀疏图

稀疏图:边很少。(e< nlog2n

稠密图:边相对较多。

5、顶点的度

顶点的度:与顶点相关联的边的条数;由该顶点发出的边叫做顶点的出度,到达该顶点的边叫做顶点的入度。

无向图:顶点的度 = 该顶点的出度;顶点的度 = 该顶点的入度。

有向图:顶点的度 = 该顶点的出度 + 该顶点的入度。

6、路径

图中路径的定义:现有顶点Vi到顶点Vj的题目要求,从Vi到Vj会经过其他顶点,会把从Vi到Vj所包含的所有顶点称为从顶点Vi到顶点Vj的路径,当然包括他两自身。

注意:两个顶点间的路径可能不唯一。

7、简单路径与回路

简单路径:路径上经过的顶点均不重复。

回路:路径上经过的第一个顶点,同样是最后一个经过的点,构成闭环了,所以回路也称环。

8、路径长度和带权路径长度

解释一下带权的意思:和边具有与之相关的数据,这些数据可能是两个顶点之间的距离、花费的代价、所需的时间等,这些数据的具体数值被称为该边的权值。

一般将带权图称为网络。


对于不带权的图:他的路径长度就是始末顶点间的边数之和。

对于带权的图:他的路径长度就是始末顶点之间,各个边的权值的和。

9、子图

子图的定义通俗来讲:从原图中,拿出一些顶点和一些边,组成一个新的图。一定要注意,拿出来的组件,最后一定要组成一个图才行!

生成子图:顶点全拿出来,边拿出来一部分就行。

10、连通图与连通分量

基于无向图:

在无向图中,如果两个顶点之间有路径,则称该两顶点是联通的;如果图G中,任意两顶点都是连通的,则称其为连通图,否则就是非连通图。

注意点:

1、顶点有n个,但是边数小于 n-1,那一定是非连通图(树就是最好的临界点:顶点为n,则边数为 n-1)

2、极大连通子图:无向图中,拿出一个子图,这个子图尽可能多的包含顶点和边。

3、连通分量:无向图中的极大连通子图叫做连通分量。

11、生成树

定义:连通图的生成树是包含图中全部顶点的一个极小连通子图。

生成树的定位:图 -> 生成子图 -> 边数最少 & 连通 -> 树。

若顶点有n个,则边数会有 n - 1 个。

对于生成树而言,砍去一条边,会变成非连通图;加上一条边,会形成一个回路。

相关推荐
JieE2121 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack201 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树1 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
JieE2122 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2122 天前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
vivo互联网技术2 天前
CVPR 2026 | 全新强化学习框架 BeautyGRPO:重塑真实人像
算法·大模型·cvpr·影像
Darling噜啦啦2 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
clint4562 天前
C++进阶(1)——前景提要
c++
用户497863050732 天前
(一)小红的数组操作
算法·编程语言