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

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

相关推荐
aaaameliaaa6 小时前
字符函数和字符串函数
c语言·笔记·算法
微学AI7 小时前
一根针指向所有方向:挂谷猜想对 LLM Agent 技能-记忆架构的启示
开发语言·人工智能·架构·挂谷猜想
城管不管8 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
月疯8 小时前
二分法算法(水平等分图形面积)
算法
tq10868 小时前
开放与封闭:类型系统的安全哲学
笔记
豆瓣鸡8 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯8 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
Achou.Wang9 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
龙仔7259 小时前
人大金仓 KingbaseES V8 只读账号创建完整运维笔记
运维·笔记·sql·人大金仓
韭菜炒鸡肝天9 小时前
VTK开发笔记(一):VTK介绍,Qt..+VSx+VTK.编译
开发语言·笔记·qt