数据结构复习指导之图的基本概念

文章目录

图的基本概念

考纲内容

复习提示

1.图的定义

1.1有向图

1.2无向图

1.3简单图、多重图

1.4完全图(简单完全图)

1.5子图

1.6连通、连通图和连通分量

1.7强连通图、强连通分量

1.8生成树、生成森林

1.9顶点的度,入度和出度

1.10边的权和网

1.11稠密图、稀疏图

1.12路径、路径长度和回路

1.13简单路径、简单回路

1.14距离

1.15有向树

知识回顾


图的基本概念

考纲内容

(一)图的基本概念

(二)图的存储及基本操作
           邻接矩阵;邻接表;邻接多重表;十字链表
(三)图的遍历
           深度优先搜索;广度优先搜索
(四)图的基本应用
           最小(代价)生成树;最短路径;拓扑排序;关键路径

复习提示

图算法的难度较大,主要掌握深度优先搜索与广度优先搜索。掌握图的基本概念及基本性质、图的存储结构(邻接矩阵、邻接表、邻接多重表和十字链表)及特性、存储结构之间的转化、基于存储结构上的各种遍历操作和各种应用(拓扑排序、最小生成树、最短路径和关键路径)等。

图的相关算法较多,通常只需掌握其基本思想和实现步骤,而实现代码不是重点。

1.图的定义

图 G由顶点集 V和边集 E组成,记为 G=(V,E),其中 V(G)表示图 G 中顶点的有限非空集;E(G)表示图 G中顶点之间的关系(边)集合。

V=\left \{ v_{1}, v_{2},...,v_{n} \right \},则用|V|表示图 G中顶点的个数,也称图G的阶,E={(u,v)|u∈V,v∈V},用|E|表示图G中边的条数。

注意:线性表可以是空表,树可以是空树,但图不可以是空图。也就是说,图中不能一个顶点也没有,图的顶点集V一定非空,但边集E可以为空,此时图中只有顶点而没有边。

下面是图的一些基本概念及术语。

1.1有向图

若E是有向边(也称弧)的有限集合,则图G为有向图。弧是顶点的有序对,记为<v,w>,

其中v,w是顶点,v称为弧尾,w称为弧头,<v,w>称为从v到w的弧,也称v邻接到w。

图 6.1(a)所示的有向图G1可表示为

                                                        G_{1}=(V_{1},E_{1})

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        V_{1}=\left \{ 1,2,3 \right \}

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​     E_{1}=\left \{ <1,2>,<2,1>,<2,3> \right \}

1.2无向图

若E是无向边(简称边)的有限集合,则图G为无向图。边是顶点的无序对,记为(v,w)或(w,v)。

可以说w和v互为邻接点。边(v,w)依附于w和v,或称边(v,w)和v,w 相关联。

图 6.1(b)所示的无向图 G2可表示为

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​           G_{2}=(V_{2},E_{2})

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​           V_{2}=\left \{ 1,2,3,4 \right \}

        ​​​​​​​        ​​​​​​​        ​​​​​​​              E_{2}=\left \{ (1,2),(1,3),(1,4),(2,3),(2,4),(3,4) \right \}

1.3简单图、多重图

一个图 G若满足:

①不存在重复边;

②不存在顶点到自身的边;

则称图 G为简单图

图 6.1中 G1 和 G2 均为简单图。若图 G中某两个顶点之间的边数大于1条,又允许顶点通过一条边和自身关联,则称图G为多重图

多重图和简单图的定义是相对的。本书中仅讨论简单图。

1.4完全图(简单完全图)

对于无向图,|E| 的取值范围为0到 n(n-1)/2,有 n(n-1)/2 条边的无向图称为完全图,在完全图中任意两个顶点之间都存在边。

对于有向图,|E| 的取值范围为0到n(n-1),有 n(n-1)条弧的有向图称为有向完全图,在有向完全图中任意两个顶点之间都存在方向相反的两条弧。

图 6.1中 G2为无向完全图,而G3为有向完全图。

1.5子图

设有两个图 G =(V,E)和 G'=(V',E'),若V'是V的子集,且E'是E的子集,则称G'是G的子图。

若有满足 V(G')=V(G)的子图 G',则称其为G的生成子图。图 6.1中G3为G1 的子图

注意:并非 V和E的任何子集都能构成 G的子图,因为这样的子集可能不是图,即E的子集中的某些边关联的顶点可能不在这个V的子集中。

1.6连通、连通图和连通分量

命题追踪——图的连通性与边和顶点的关系

在无向图中,若从顶点v到顶点w有路径存在,则称v和w是连通的。若图G中任意两个顶点都是连通的,则称图 G为连通图,否则称为非连通图

无向图中的极大连通子图称为连通分量,在图 6.2(a)中,图 G4有3个连通分量如图 6.2(b)所示。

假设一个图有n个顶点,若边数小于n-1,则此图必是非连通图;

思考:若图是非连通图,则最多可以有多少条边?

解答:非连通情况下边最多的情况:由n-1个顶点构成一个完全图,此时再加入一个顶点则变成非连通图。

1.7强连通图、强连通分量

在有向图中,若有一对顶点v和 w,从v到w和从 w到v之间都有路径,则称这两个顶点是强连通的

若图中任意一对顶点都是强连通的,则称此图为强连通图

有向图中的极大强连通子图称为有向图的强连通分量,图G1的强连通分量如图6.3所示。

思考:假设一个有向图有n个顶点,若是强连通图,则最少需要有多少条边?

解答:有向图强连通情况下边最少的情况:至少需要n条边,构成一个环路。

注意:在无向图中讨论连通性,在有向图中讨论强连通性

1.8生成树、生成森林

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

包含图中全部顶点的极小连通子图,只有生成树满足这个极小条件,对生成树而言,若砍去它的一条边,则会变成非连通图,若加上一条边则会形成一个回路。

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

图G2的一个生成树如图 6.4所示。

注意:区分极大连通子图和极小连通子图:

极大连通子图要求子图必须连通,而且包含尽可能多的顶点和边;

极小连通子图是既要保持子图连通又要使得边数最少的子图。

1.9顶点的度,入度和出度

命题追踪——无向图中顶点和边的关系

在无向图中,顶点v的度是指依附于顶点v的边的条数,记为TD(v)。

在图 6.1(b)中,每个顶点的度均为3。无向图的全部顶点的度之和等于边数的2倍,因为每条边和两个顶点相关联。

在有向图中,顶点v的度分为入度和出度,入度是以顶点v为终点的有向边的数目,记为ID(v);而出度是以顶点v为起点的有向边的数目,记为 OD(v)。

在图 6.1(a)中,顶点 2 的出度为2、入度为 1。顶点v的度等于其入度与出度之和,即 TD(v)= ID(v)+ OD(v)。

有向图的全部顶点的入度之和与出度之和相等,并且等于边数,这是因为每条有向边都有一个起点和终点

1.10边的权和网

在一个图中,每条边都可以标上具有某种含义的数值,该数值称为该边的权值。这种边上带有权值的图称为带权图,也称

1.11稠密图、稀疏图

边数很少的图称为稀疏图,反之称为稠密图。稀疏和稠密本身是模糊的概念,稀疏图和稠密图常常是相对而言的。一般当图 G满足|E|<|V|log|V|时,可以将 G视为稀疏图。

1.12路径、路径长度和回路

顶点 v_{p}到顶点v_{q}之间的一条路径是指顶点序列v_{p},v_{i_{1}},v_{i_{2}},...v_{i_{m}},v_{q}当然关联的边也可理解为路径的构成要素。

路径上的边的数目称为路径长度。第一个顶点和最后一个顶点相同的路径称为回路

若一个图有n个顶点,且有大于n-1条边,则此图一定有环。

1.13简单路径、简单回路

在路径序列中,顶点不重复出现的路径称为简单路径。除第一个顶点和最后一个顶点外,其余顶点不重复出现的回路称为简单回路

1.14距离

从顶点u出发到顶点v的最短路径若存在,则此路径的长度称为从u到v的距离。若从u到v根本不存在路径,则记该距离为无穷(∞)。

1.15有向树

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

知识回顾

  • 40
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 山东大学数据结构课程的复习资料可以在CSDN上找到。CSDN是中国最大的IT技术社区和学习交流平台,拥有海量的程序员和IT专家分享的技术文章和学习资源。 在CSDN上搜索“山东大学数据结构复习资料”,可以找到很多相关的资源。这些资源可以包括课程讲义、课件、笔记、习题集、复习指南等。学生可以根据自己的需要选择合适的资料进行复习。 CSDN上的资料通常由广大的IT从业者和编程爱好者们上传和分享,具有较高的可靠性和实用性。通过CSDN,学生可以查找到其他同学们的问题和解答,以及一些学习经验和心得分享,有助于更好地理解和掌握数据结构课程的内容。 在CSDN上查找数据结构复习资料的步骤很简单,只需要在主页的搜索框中输入“山东大学 数据结构复习资料”,点击搜索即可。通过筛选和阅读搜索结果,可以找到最适合自己的复习资料。 总而言之,CSDN是一个很好的资源平台,提供了山东大学数据结构课程的复习资料,学生可以通过搜索和筛选找到最适合自己的复习资料,并且还能与其他同学们进行学习经验和解答的交流。 ### 回答2: 山东大学数据结构复习资料csdn是指山东大学学生在CSDN(中国最大的IT技术社区)上分享的数据结构复习资料。在这个资料中,学生们可以找到有关数据结构的详细内容和资料,帮助他们更好地复习和理解这门课程。 这些复习资料通常包括课程讲义、习题解答、实例代码和相关学习资源。学生们可以根据自己的需要选择合适的资料进行学习和复习。这些资料的内容不仅能够帮助学生们掌握数据结构基本概念算法,还可以帮助他们在实际应用中解决问题。 此外,在csdn上分享数据结构复习资料也有助于学生们相互交流和学习。学生们可以通过阅读和评论他人的资料来获取更多的知识和观点。同时,他们还可以通过自己分享资料来展示自己的学习成果,并得到其他学生的反馈和建议。 总之,山东大学数据结构复习资料csdn是山东大学学生们在csdn上分享的关于数据结构的学习和复习资料。这些资料不仅能够帮助学生们更好地掌握课程知识,还能够促进学生之间的相互学习和交流。 ### 回答3: 山东大学数据结构复习资料CSND是一个非常有用的资源,可以帮助学生们更好地复习数据结构课程。CSND是一个知名的技术社区,汇集了许多IT从业者和计算机科学爱好者,他们在这里分享自己的经验和学习资料。 在CSND上,我们可以找到大量关于数据结构复习资料,包括教程、例题、习题解析、笔记等。这些资料覆盖了数据结构中的各个重要概念和算法,如数组、链表、栈、队列、树、等。通过阅读这些资料,我们可以加深对数据结构知识的理解,并提高解题的能力。 除了资料本身,CSND还有一个活跃的问答板块。在这里,我们可以提出自己的问题,并且得到其他人的解答和指导。这对于遇到困难的学生来说是非常有帮助的。通过参与讨论和交流,我们可以从其他人的经验中学习,拓宽自己的思维。 总的来说,山东大学数据结构复习资料CSND是一个宝贵的资源,提供了丰富的学习资料和交流平台。通过利用这个资源,我们可以更有效地复习数据结构,并且提高自己的学习成果。希望大家都能充分利用这个资源,取得好的学习效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心碎烤肠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值