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 个。

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

相关推荐
jimy12 分钟前
C语言模拟对象、方法:“函数指针+结构体“复用函数指针指向的函数体
c语言·开发语言
既然如此,那就开摆3 分钟前
精读笔记06_CoCa
笔记
天外天-亮40 分钟前
HBuilder X 使用 uview-plus 方式
开发语言·javascript·hbuilder x·uview-plus
三品吉他手会点灯1 小时前
嵌入式机器学习 - 学习笔记1.1.1 - 什么是机器学习?
c语言·人工智能·笔记·嵌入式硬件·学习·机器学习
qq5752173191 小时前
Notepad++下载和安装
笔记·notepad++·记事本
木木子221 小时前
[特殊字符] 音乐播放器——状态驱动的多媒体控制
android·开发语言·华为·php·harmonyos
旖-旎1 小时前
《LeetCode 53 最大子数组和 || LeetCode 918 环形子数组的最大和》
c++·算法·leetcode·动态规划
变量未定义~1 小时前
单调栈+倍增思想 皇家守卫【算法赛】、单调队列 附近最小
算法
QN1幻化引擎1 小时前
给 AI 做一次「意识体检」——基于 QN1 幻化引擎的灵鉴意识识别框架与 DalinX V5 实测
大数据·数据结构·人工智能·算法·架构
六个九十度2 小时前
用python脚本访问被网关隔离的嵌入式设备
开发语言·python