第六章 图

本文详细介绍了图的定义,包括无向图、有向图、完全图和网,以及图的度和连通性。接着,讨论了图的存储结构,如邻接矩阵、邻接表和十字链表,特别强调了邻接矩阵和邻接表的优缺点。还深入探讨了图的遍历方法,包括深度优先搜索和广度优先搜索,并分析了它们的时间复杂度。最后,提到了图的应用,如最小生成树的构造和最短路径问题的解决方法。
摘要由CSDN通过智能技术生成

第六章 图

6.1 图的定义和基本术语

图:G=(V,E) V:顶点(数据元素)的有穷非空集合;E:边的有穷集合。

无向图:每条边都是无方向的。

有向图:每条边都是有方向的。

完全图:任意两个点都有一条边相连

稀疏图:有很少边或弧的图(e<nlogn)。

稠密图:有很多边或弧的图

网: 边/弧带权的图

邻接: 有边/弧相连的两个顶点之间的关系

​ 存在(vi,vj),则称vi和vj互为邻接点;

​ 存在<vi,vj>,则称vi邻接到vj,vj邻接于vi

关联(依附):边/弧与顶点之间的关系

​ 存在(vi,vj)/<vi,vj>,则称该边/弧关联于vi和vj

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

在有向图中,顶点的度等于该顶点的入度和出度之和

顶点v的入度是以v为终点的有向边的条数,记作ID(V)

顶点v的出度是以v为终点的有向边的条数,记作OD(V)

例子:

有向树

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

路径长度:路径上边或弧的数据/权值之和。

回路(环):第一个顶点和最后一个顶点相同的路径。

简单路径:除路径起点和终点可以相同外,其余顶点均不相同的路径。

简单回路(简单环):除路径起点和终点相同外,其余顶点均不相同的路径。

连通图(强连通图)

​ 在无(有)向图G=(V, {E})中,若对任何两个顶点v,u都存在从v到u的路径,则称G是连通图(强连通图)

权与网:

​ 图中边或弧所具有的相关数称为权。表明从一个顶点到另一个顶点的举例或耗费。

​ 带权的图称为网。

子图:

​ 设有两个图G=(V, {E})、G1=(V1, {E1}),若v1V,E1E,则称G1是G的子图。

连通分量(强连通分量)

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

​ 极大连通子图意思是:该子图是G的连通子图,将G的任何不在该子图中的顶点 加入,子图不再连通。

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

    极大强连通子图意思是:该子图是G的强连通子图,将D的任何不在该子图中的顶点加入,子图不再连通。

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

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

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

6.2 图的类型定义

ADT Graph{
   

​			数据对象V:具有相同特性的数据元素的集合,称为顶点集

​			数据关系R:R={
   VR}

​				VR={
   <v,w>|<v,w>|v,w∈V ∧ p(v,w),<v,w>表示从v到w的弧,p(v,w)定义了弧(v,w)的信息

}

​	CreateGraph(&G,V,VR)

​				初始条件:V是图的顶点集,VR是图中弧的集合

​				操作结构:按V和VR的定义构造图G

​	DFSTraverse(G)

​				初始条件:图G存在

​				操作结构:对图进行深度优先遍历

​	BFSTraverse(G)

​				初始条件:图G存在

​				操作结构:对图进行广度优先遍历

}ADT Graph

6.3 图的存储结构

图的逻辑结构:多对多

图没有顺序存储结构,但可以借助二维数组来表示元素间的关系

数组表示法(临街矩阵)

链式存储结构:多重链表----->邻接表、邻接多重表、十字链表

重点介绍:邻接矩阵(数组)表示法、邻接表(链式)表示法

6.3.1 邻接矩阵

  1. 数组(邻接矩阵)表示法
    • 建立一个顶点表(记录各个顶点信息)和一个邻接矩阵(表示各个顶点之间关系)。
    • 设图A=(V,E)有n个顶点,则

图的邻接矩阵是一个二维数组A.arcs [n] [n],定义为:

如果<i,j>∈E,或者(i,j)∈E A.arcs [i] [j]=1否则 A.arcs [i] [j]=0。

无向图的邻接矩阵

分析1:无向图的邻接矩阵是对称的

分析2:顶点i的度 = 第i行(列)中1的个数

特别:完全图的邻接矩阵中,对角元素为0,其余1

有向图的邻接矩阵

注:在有向图的邻接矩阵中

​ 第i行的含义:以结点vi为尾的弧(即出度边)

​ 第i列的含义:以结点vi为头的弧(即入度边)

分析1:有向图的邻接矩阵可能是不对称的

分析2:顶点的出度 = 第i行元素之和

​ 顶点的入度 = 第i列元素之和

​ 顶点的度 = 第i行元素之和 + 第i列元素之和

网(权图)的邻接矩阵

定义为:

邻接矩阵存储表示

​ 用两个数组分别存储顶点表和邻接矩阵

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值