【数据结构】图-图的基础理论(图解)

GitHub同步更新(已分类)Data_Structure_And_Algorithm-Review

公众号:URLeisure 的复习仓库
公众号二维码见文末

以下是本篇文章正文内容,下面案例可供参考。


概述

  • 前面文章写了线性表树形结构

  • 在线性表中,数据元素是一对一的关系,除了第一个和最后一个元素外,每个元素都有唯一的前驱和后继。

  • 在树形结构中,数据元素是一对多的关系,除了根之外,每个节点都有唯一的双亲节点,可以有多个孩子。

  • 之后文章中的图形结构是多对多的关系,任何两个数据元素都可能有关系,每个节点可以有多个前驱和后继

  • 图的应用非常广泛,例如交通图,神经网络等。

在这里插入图片描述
图片来源:百度,侵删

图的基本术语

  • 图通常用一个二元组 G = < V , E > G=<V,E> G=<V,E> 表示,V 表示顶点集,E 表示边集。

  • |V| 表示顶点集中元素的个数,即顶点数,n 个顶点的图称为 n 阶图。

  • |E| 表示边集中元素的个数,即边数

  • 注意:顶点集 V 和边集 E 均为有限集合,其中 E 可以为空集,V 不可以为空集,但在运算中,可能产生 V 为空集。V 为空集的图称为空图

1). 无向图

  • 若图 G 中每条边都是没有方向的,则称为无向图。

  • 如图,每条边都是两个顶点组成的无序对,例如顶点 V1 和顶点 V3 之间的边,记为 (V1,V3)或(V3,V1)。

在这里插入图片描述

2). 有向图

  • 若图 G 中每条边都是有方向的 则称为有向图。

  • 如图,有向边也称为弧,每条弧都是由两个顶点组成的有序对,例如从顶点 V1 到顶点 V3 的弧,记为 <V1,V3>,V1 称为弧尾,V3 称为弧头。

在这里插入图片描述

3). 简单图

既不含平行边也不含环的图称为简单图,上图均为简单图。

  • 无向图中,若关联一对顶点的无向边多于一条,则称这些边为平行边。
  • 有向图中,若关联一对顶点的无向边多于一条且这些边的始点和终点相同(方向一致),则称这些边为平行边。
  • 自环是指一条边关联的两个顶点为同一个顶点,也就是自己到自己有一条边。

含有平行边的图称为多重图,平行边的条数称为重数

在这里插入图片描述

4). 完全图

  1. 在无向图中,任意两个点都有一条边,则该图称为无向完全图,含有 n 个顶点的无向完全图,每个顶点到其他的 n-1 个顶点都有边,一共有 n ( n − 1 ) 2 \cfrac{n(n-1)}2 2nn1 条边。
  2. 在有向图中,任意两个点都有两条方向相反的两条弧,则该图为有向完全图,含有 n 个顶点的有向完全图,每个顶点发出 n-1 条边,并且进来 n-1 条边,一共有 n ( n − 1 ) n(n-1) nn1条边。

在这里插入图片描述

5). 稀疏图和稠密图

  • 有很少边或弧的图称为稀疏图,反之,则称为稠密图。

  • 一般,若图 G 满足 ∣ E ∣ < ∣ V ∣ × l o g ∣ V ∣ |E|<|V|×log|V| E<V×logV,则称 G 为稀疏图。

6). 网

  • 图的边上带值时,该数值称为边的权值,即带权的图称为网。

  • 如,在图的边上标注距离、时间、耗费等数值。

在这里插入图片描述

7). 邻接和关联

  • 邻接是指顶点和顶点之间的关系,关联是指边和顶点的关系。

  • 邻接:有边/弧相连的两个顶点之间的关系,如无向边(Vi,Vj),则称 Vi 和 Vj 互为临界点;有向边 <Vi,Vj>,则称 Vi 邻接到 Vj ,Vj 临界与 Vi

  • 关联:若存在(Vi,Vj)或 <Vi,Vj>,则称该边或弧关联与 Vi 和 Vj

在这里插入图片描述

8). 顶点的度

  • 顶点的度是指与该顶点相关联的边的数目,即为 TD(v)。

  • 握手定理:度数之和等于边数的两倍,即 ∑ i = 0 n T D ( V i ) = 2 e \displaystyle\sum_{i=0}^nTD(V_i)=2e i=0nTD(Vi)=2e

  • 其中,n 为顶点数,e 为边数。

  • 在计算度数之和时,每条边算了两次。

在有向图中,顶点的度又分为入度出度

  • 顶点 v 的入度是以 V 为终点的有向边的条数,记作 ID(v),即进来的边数。
  • 顶点 v 的出度是以 V 为始点的有向边的条数,记作 OD(v),即发出的边数。
  • 顶点 v 的度等于其入度和出度之和,即 T D ( v ) = I D ( v ) + O D ( v ) TD(v)=ID(v)+OD(v) TD(v)=ID(v)+OD(v)

综上 ∑ i = 0 n I D ( V i ) = ∑ i = 0 n O D ( V i ) = e \displaystyle\sum_{i=0}^nID(V_i)=\displaystyle\sum_{i=0}^nOD(V_i)=e i=0nID(Vi)=i=0nOD(Vi)=e

9). 路径、路径长度和距离

  • 路径:接续的边的顶点构成的序列。

  • 路径长度:路径上边或弧的数目。

  • 距离:从顶点到另一顶点的最短路径长度。

如图,V1 到 V4 的路径有两条。

  • V1 、V3 、 V4 ,路径长度为 2
  • V1 、V4 ,路径长度为 1

V1 到 V4 的距离为 1。

在这里插入图片描述

  • 注意:在有向图中,路径必须沿着箭头方向走,无向图有边就能走。

10). 回路(环)、简单路径和简单回路

在这里插入图片描述

  • 回路(环):第一个顶点和最后一个顶点相同的路径。如 V1 、V3 、V4 、V1,就是回路。

  • 简单路径:除路径始点和终点可以相同外,其余顶点均不相同的路径。V1 、V3 、V4 、V1、V2 不是简单回路(V1 经历了两次),V1 、V3 、V4 、V2 是简单路径。

  • 简单回路:除路径始点和终点相同外,其余顶点均不相同的路径。V1 、V3 、V4 、V1,就是简单回路。

11). 子图与生成子图

  • 子图:设有两个图 G=(V,E)、G1=(V1,E1),若 V1⊆V,E1⊆E,则称 G1 是 G 的子图。从图中选择若干个顶点、若干条边构成的图称为原图的子图。

  • 生成子图:从图中选择所有的顶点,若干条边构成的图称为原图的生成子图。

sd

12). 连通图和连通分量

  • 连通图:无向图中,如果顶点 Vi 到 Vj 有路径,则称 Vi 和 Vj 是连通的。如果图中任何两个顶点都是连通的,则称 G 为连通图。

  • 极大连通子图:该子图是 G 的连通子图,如果再加入一个顶点(原图的顶点集中任何一个),该子图不连通。

  • 连通分量:无向图 G 的极大连通子图称为 G 的连通分量。

  • 对于连通图,其连通分量就是它自己;对于非连通图,则有 2 个以上连通分量。

在这里插入图片描述

  • 其中 V4 不是连通分量,因为它加个 V2 所构成的图还是连通的。

13). 强连通图和强连通分量

  • 强连通图:有向图中,如果图中任何两个顶点 Vi 到 Vj 有路径,且 Vj 到 Vi 也有路径,则称 G 为强连通图。

  • 极大强连通子图:该子图是 G 的强连通子图,如果再加入一个顶点(原图的顶点集中任何一个),该子图不强连通。

  • 强连通分量:有向图 G 的极大强连通子图称为 G 的强连通分量。

14). 树和有向图

  • 从图论的角度看,树是一个无环连通图

一个含 n 个顶点、m 条边的图,只要满足下列五个条件之一就是一棵树:

  • G 是连通图且 m = n − 1 m=n-1 m=n1
  • G 是连通图且无环;
  • G 是连通图,但删除任意一条边就不连通;
  • G 是无环图,但添加任意一条边就会产生环;
  • G 中任意一对顶点之间仅存在一条简单路径。

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

在这里插入图片描述

15). 生成树和生成森林

  • 极小连通子图:该子图是 G 的连通子图,在该子图中删除任何一条边,该子图不在连通。

在这里插入图片描述

  • 生成树:包含无向图 G 所有顶点的极小连通子图。

  • 因为生成树包含所有顶点,因此只有连通图才有生成树,而非连通图,每一个连通分量会有一棵生成树。

  • 生成森林:对非连通图,由各个连通分量的生成树组成的集合。

16). 二分图

  • 二分图,又称为二部图,是图论中的一种特殊模型。

设 G=<V,E> 是一个无向图

  • 顶点集 V 可分割为两个互不相交的子集 V1 、V2
  • 图中的每条边(i,j)所关联的两个顶点 i 和 j 分别属于这两个不同的顶点集(i⊆V1,j⊆V2
  • 称图 G 为二分图,如图。

在这里插入图片描述


关注公众号,感受不同的阅读体验

请添加图片描述

下期预告:图的存储_邻接矩阵

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扑腾的江鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值