22计算机408考研—数据结构—图的基本概念

237 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第31天,点击查看活动详情

手把手教学考研大纲范围内图的存储和遍历 22考研大纲数据结构要求的是C/C++,笔者以前使用的都是Java,对于C++还很欠缺, 如有什么建议或者不足欢迎大佬评论区或者私信指出 初心是用最简单的语言描述数据结构

Talk is cheap. Show me the code. 理论到处都有,代码加例题自己练习才能真的学会

一、图的基本概念

官方解释:
	图G由集合V和集合E组成,记作G = (V,E)
	V(G)代表图G的顶点集合 (有穷非空集合)
	E(G)代表图G的边集合(如果图G为空,则图只有顶点没有边)
歪理:
	树是一个结点对应多个结点,图就是多个结点对应多个结点
	图可以想象成一个乱七八糟的树
	线性表和树都可以看作是一种特殊的图

图分为有向图无向图

1、有向图:

顾名思义,有向图是有方向的图
1->2 但是 2不能指向1

在这里插入图片描述

2、无向图:

没有方向的图
只要有边存在就可以互相走,a  -> c , c -> a 两种都存在 

在这里插入图片描述

3、子图:

官方解释:

G = (V,E)和G' = (V', E')
V'属于V, E'属于E
称G'为G的子图

在这里插入图片描述

当前图的子图有:
1 -> 2
1 -> 2 -> 4
3 -> 4
等等很多,无向图也是一样的

4、完全图:

对于无向图:

​ 若具有n(n-1)条边,则称为无向完全图。

对于有向图:

​ 若具有n(n-1)条边,则称为有向完全图。

5、稀疏图和稠密图:

​ 边的数量相对顶点很少的图称为稀疏图,反之称为稠密图。

6、权和网:

​ 在一些情况下,每条边可以标上具有某种含义的数值,该数值称为该边上的

​ 这些权表示从 一个顶点到另一个顶点 的距离或者耗费,这种带权的图通常称为

7、邻接点:

​ 对于无向图G,如果图的边(a,b)属于 E ,则称 a,b 互为邻接点,即 a,b 相邻接,边(a,b)依附于顶点 ab ,边(a,b)与顶点a,b相关联。

8、度,入度和出度:

​ 顶点 v 的度是:与 v 相关联的边的数目,记作 TD(v)

​ 对于有向图,顶点 v 的度分为入度和出度:

​ 入度是指向 v 的边的数目,记为 ID(v)

​ 出度是从 v 指出来的边的数目,记作 OD(v)

例子:

在这里插入图片描述

​ 以顶点 2 为例子:

​ 顶点 2 的入度ID(v)= 1

​ 顶点 2 的出度OD(v)= 2

​ 顶点 2 的度为TD(v)= ID(v)+ OD(v)= 3

边和度之间的关系:

​ 顶点 vi 的度记为 TD(v),那么一个有 n 个顶点,e 条边的图,满足如下关系

e = (TD(v1) + TD(v2) + …… +TD(vn))/ 2

7、路径和路径长度:

​ 顶点 Va 到顶点 Vb 之间的 路径: 是指顶点序列 {Va,Vi1,Vi2,……,Vim,Vb}

路径长度: 路径中边的数目

回路或环: 第一个顶点和最后一个顶点 相同的路径 称为回路或环(也就是 ab 相同)

简单路径: 路径中顶点不重复出现的路径的路径为简单路径

简单回路 或 简单环: 除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路 或 简单环

8、连通、连通图和连通分量:

连通图 的图像结果

在无向图中

​ 如果从顶点 A 到顶点 B 有路径,则称 AB连通

​ 如果图中任意两个两个顶点 AB 都是连通的,则称图为 连通图

连通分量 的图像结果

在无向图中

​ 上图不是连通图

​ 下面是上图的三个连通分量

连通分量也称作无向图中的极大连通子图

​ 也就是说,把一个非连通图完全分成多个连通图,这些连通图就叫做连通分量

9、强连通图和强连通分量:

强连通图

在有向图中 如果图中任意两个两个顶点 AB 都是连通的,则称图为 强连通图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pL7Q3QyO-1637458582097)(https://tse1-mm.cn.bing.net/th/id/R-C.df6e4aa9b6d0910b9adb742d1e2bf7ab?rik=gV5%2bFlnZ8HdsVg&riu=http://upload-images.jianshu.io/upload_images/2015908-8d71b80d28821271.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240&ehk=u2cPVkXWyBkCCBqel5lxota5Wb2M3v/IwQ8YVU8cg9U=&risl=&pid=ImgRaw&r=0#pic_center)]

在有向图中: G4不是强连通图,但是他有三个强连通分量

10、连通图的生成树、有向树和生成森林:

**连通图的生成树:**是包含图中全部顶点的一个极小连通子图。若图中顶点数为 n ,则它的生成树含有 n − 1 条边。

对生成树而言,若砍去一条边,则会变成非连通图

加上一条边则会形成一个回路

在非连通图中,连通分量的生成树构成了非连通图的生成森林

有向树 的图像结果

有向树: 有一个顶点的入度为0,其余顶点的入度均为1的有向图称为有向树

换句话说,一个有向图的生成森林是由若干棵有向树组成。