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

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

相关推荐
飞Link7 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
学逆向的7 小时前
C 堆区内存管理
c语言·开发语言·网络安全
huoyueyi7 小时前
《融天AI-APP从0到1开发实录》
开发语言·lua
zhangrelay8 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
Jimmy8 小时前
深夜突袭:我们的午夜战场
笔记·产品·电子书
xiaoye-duck9 小时前
《C++ 工具库实战》gflags 命令行参数解析库详解
c++·第三方库
OpenAnolis小助手9 小时前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
一去不复返的通信er9 小时前
贪心算法-合并区间(LeetCode 56)
算法·leetcode·贪心算法
狂奔的sherry10 小时前
C++ 宏生成访问函数的代价:访问权限、调试和类型检查
c++·宏·编译·预处理器·类型检查
阿尼卡~10 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows