8-1 图结构

8-1 图结构_第1张图片

8-1 图结构

1、图结构

前面已经讲了 "一对一" 的线性存储结构、"一对多"的树结构 , 现在介绍 "多对多" 的图结构

图G由两个集合 V和E 组成, 记为G=( V, E) , 其中 V是顶点(vertex)的有穷 非空 集合,E是指边(edge)的有穷集合。

 

图存储结构可细分两种表现类型,无向图 和 有向图。

若图G的边没有表示方向,则就称为无向图,这样的边用圆括号表示(Vi, Vj)

如果图G中的每条边都是有方向的,就称为有向图,边用尖括号表示< Vi, Vj>, 表示从Vi指向Vj。

下面介绍一些图的基本定义:

①邻接点:

对于无向图每条边的两个端点互为邻接点;

对于有向图, 有向边的终点是 起点的 邻接点,反之不成立

比如 < U, V> 表示 U 指向 V, 所以 V 是 U 的邻接点, 但  U 不是 V 的邻接点!

 

②弧头和弧尾:

有向边也被称为 ,无箭头一端的顶点通常被称为"初始点"或"弧尾",箭头指向的顶点被称为"终端点"或"弧头"。

 

③度:

常用D(V)来表示,在无向图中,顶点的度 就是 以该顶点为端点的边的条数

有向图中指向该顶点的弧的数目 称为 入度ID(V), 从该顶点出发 弧 的数目 称为 度OD(V)。

有向图的顶点的度是二者之和 D(V) = ID(V) + OD(V).

重要结论: 无论是有向图还是无向图,顶点数n、边数e、和度数之间有关系:所有顶点的度数之和 等于 边数的2倍

 

④路径和回路:

一个顶点到另一顶点途径的所有顶点组成的序列(包含这两个顶点),称为一条路径。

如果路径中第一个顶点和最后一个顶点相同,则此路径称为"回路"(或"环")。

若路径 / 回路 中各顶点都不重复,此路径又被称为"简单路径" / "简单回路"

 

⑤权和网的含义

图中的每条边(或弧)会赋予一个实数来表示一定的含义,这种与边(或弧)相匹配的实数被称为"权",

带权的图通常称为网

2、常见的图的种类

可分为完全图,连通图、稀疏图和稠密图:

①完全图

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

8-1 图结构_第2张图片

②稀疏图和稠密图

这两种图是相对存在的,即如果图中具有很少的边(或弧),此图就称为"稀疏图";反之,则称此图为"稠密图"。

稀疏和稠密的判断条件是:e

如果式子成立,则为稀疏图;反之为稠密图。

 

③连通图

在无向图中,每一对顶点 u和v之间都能找到一条路径,则此图称为 连通图

若无向图不是连通图,但图中存储某个子图符合连通图的性质,则称该子图为连通分量。

(这里的子图指的是图中"最大"的连通子图)

 

在有向图中,每一对顶点u和v之间都存在 u到v 以及 从 v到u的路径,则成为连通图

若有向图本身不是强连通图,但其包含的最大连通子图具有强连通图的性质,则称该子图为强连通分量。

 

④生成树

连通图进行遍历,过程中所经过的边和顶点的组合可看做是一棵普通树,通常称为生成树。

连通图中,由于任意两顶点之间可能含有多条通路,遍历连通图的方式有多种,往往一张连通图可能有多种不同的生成树与之对应。

连通图中的生成树必须满足以下 2 个条件:

●包含连通图中所有的顶点

●任意两顶点之间有且仅有一条通路;

因此,连通图的生成树具有这样的特征,即生成树中边的数量 = 顶点数 - 1

 

⑤生成森林

生成树是对应连通图来说,而生成森林是对应非连通图来说的。

非连通图可分解为多个连通分量,而每个连通分量又各自对应多个生成树(至少是 1 棵),因此与整个非连通图相对应的,是由多棵生成树组成的生成森林

你可能感兴趣的:(数据结构与算法,图结构)