14. 图 - 图存储结构基础概念,分类,生成树

14. 图 - 图存储结构基础概念,分类,生成树

  • 图存储结构 : 存储具有"多对多"逻辑关系数据的结构
  • 图结构中将各个数据元素被称为顶点

图存储结构中,习惯上用 Vi 表示图中的顶点,且所有顶点构成的集合通常用 V 表示,如下图中顶点的集合为 V= {V1,V2,V3,V4}。

  • 图的各个顶点之间的关系可为:单向或者双向,因此图存储结构可细分两种表现类型,分别为无向图(图 1)和有向图(图 2)。
    在这里插入图片描述

14.1 图存储结构基础概念

1)弧头和弧尾

  • 有向图中,无箭头一端的顶点通常被称为"初始点"或"弧尾",箭头直线的顶点被称为"终端点"或"弧头"

2)入度和出度

  • 有向图中,对一个顶点 V 来说,箭头指向 V 的弧的数量为 V 的入度(InDegree,记为 ID(V));箭头远离 V 的弧的数量为 V 的出度(OutDegree,记为OD(V))。

拿图 2 中的顶点 V1来说,该顶点的入度为 1,出度为 2(该顶点的度为 3)。

3)(V1,V2) 和 <V1,V2> 的区别

  • 无向图中描述两顶点(V1 和 V2)之间的关系可以用 (V1,V2) 来表示,(V1,V2) 还可以用来表示无向图中连接 V1 和 V2 的线,又称为
  • 有向图中描述从 V1 到 V2 的"单向"关系用 <V1,V2> 来表示,<V1,V2> 也可用来表示有向图中从 V1 到 V2 带方向的线,又称为

4)集合 VR 的含义

  • 图中用 VR 表示图中所有顶点之间关系的集合。

例如,图 1 中无向图的集合 VR = { (v1,v2), (v1,v4), (v1,v3), (v3,v4) };
图 2 中有向图的集合 VR = { <v1,v2>, <v1,v3>, <v3,v4>, <v4,v1> }。

5)路径和回路

  • 无论是无向图还是有向图,从一个顶点到另一顶点途径的所有顶点组成的序列(包含这两个顶点),称为一条路径
  • 若路径中第一个顶点和最后一个顶点相同,则此路径称为"回路"("环")
  • 若路径中各顶点都不重复,此路径又被称为"简单路径";同样,若回路中的顶点互不重复,此回路被称为"简单回路"(或简单环)。

拿图 1 来说,从 V1 存在一条路径还可以回到 V1,此路径为{V1, V3, V4, V1},这是一个回路(环),而且还是一个简单回路(简单环)。

  • 有向图中,每条路径或回路都是有方向的。

6)权和网

  • 在某些实际场景中,图中的每条边(或弧)会赋予一个实数来表示一定的含义,这种与边(或弧)相匹配的实数被称为"权",而带权的图通常称为。如下图就是一个网结构。
    在这里插入图片描述
    子图:指的是由图中一部分顶点和边构成的图,称为原图的子图。

14.2 图存储结构分类

  • 根据不同的特征,图又可分为完全图,连通图、稀疏图和稠密图

1)完全图

  • 完全图:若图中各个顶点都与除自身外的其他顶点有关系,这样的无向图称为完全图,同时,满足此条件的有向图则称为有向完全图。

完全图示意图

  • 特性 :具有 n 个顶点的完全图,图中边的数量为 n ( n − 1 ) / 2 n(n-1)/2 n(n1)/2;而对于具有 n 个顶点的有向完全图,图中弧的数量为 n ( n − 1 ) n(n-1) n(n1)

2)稀疏图和稠密图

  • 定义:这两种图是相对存在的,即如果图中具有很少的边(或弧),此图就称为"稀疏图";反之,则称此图为"稠密图"。
  • 判断条件:若满足 e < n l o g n e<nlogn e<nlogn( e 表示图中边(或弧)的数量,n 表示图中顶点的数量),则为稀疏图;反之为稠密图。

3)连通图

  • 定义 :无向图中,如果任意两个顶点之间都能够连通,则称此无向图为连通图
  • 连通分量 :若无向图不是连通图,但图中存储某个子图符合连通图的性质,则称该子图为连通分量
    在这里插入图片描述

4 )强连通图

  • 定义 :有向图中,若任意两个顶点 Vi 和 Vj,满足从 Vi 到 Vj 以及从 Vj 到 Vi 都连通,也就是都含有至少一条通路,则称此有向图为强连通图
  • 强连通分量 :若有向图本身不是强连通图,但其包含的最大连通子图具有强连通图的性质,则称该子图为强连通分量。
    在这里插入图片描述

14.3 生成树&生成森林

1)生成树

  • 对连通图进行遍历,过程中所经过的边和顶点的组合可看做是一棵普通树,通常称为生成树
  • 连通图中,由于任意两顶点之间可能含有多条通路,遍历连通图的方式有多种,往往一张连通图可能有多种不同的生成树与之对应
  • 连通图中的生成树必须满足以下 2 个条件:
    • 包含连通图中所有的顶点
    • 任意两顶点之间有且仅有一条通路;
  • 连通图的生成树具有这样的特征,即生成树中边的数量 = 顶点数 - 1
    在这里插入图片描述
    2)生成森林
  • 非连通图可分解为多个连通分量,而每个连通分量又各自对应多个生成树(至少是 1 棵),因此与整个非连通图相对应的,是由多棵生成树组成的生成森林。
    在这里插入图片描述
    在这里插入图片描述

感谢阅读,若有不对之处,请见谅!!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

园长QwQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值