数据结构课件-图.ppt
- 文档编号:249455
- 上传时间:2022-10-07
- 格式:PPT
- 页数:125
- 大小:5.28MB
数据结构课件-图.ppt
《数据结构课件-图.ppt》由会员分享,可在线阅读,更多相关《数据结构课件-图.ppt(125页珍藏版)》请在冰豆网上搜索。
Page1,2022/10/7,画出下列二叉链表代表的二叉树(0代表NULL指针),并完成其先序线索链表,1234567891011121314,Page2,2022/10/7,数据结构,第8-1讲图的基础知识,清华大学自动化系黄双喜博士、副教授,Page3,2022/10/7,学习目标领会图的基本概念。
熟悉图的各种存储结构及其构造算法,了解各种存储结构的特点及其选用原则。
熟练掌握图的两种遍历算法及应用。
理解各种图的应用问题的算法。
重点和难点重点:
图的各种应用问题的算法都比较经典,注意理解各种图的算法及其应用场合。
Page4,2022/10/7,知识点图的类型定义图的存储表示图的深度优先搜索遍历和广度优先搜索遍历最小生成树算法拓扑排序关键路径最短路径,图的基础知识,图的概念与基本术语图的类型定义与存储图的遍历图的连通性与最小生成树,Page5,2022/10/7,2022/10/7,欧拉1707年出生在瑞士的巴塞尔城,19岁开始发表论文,直到76岁。
几乎每一个数学领域都可以看到欧拉的名字,从初等几何的欧拉线,多面体的欧拉定理,立体解析几何的欧拉变换公式,四次方程的欧拉解法到数论中的欧拉函数,微分方程的欧拉方程,级数论的欧拉常数,复变函数的欧拉公式等等。
据统计他那不倦的一生,共写下了886本书籍和论文,其中分析、代数、数论占40%,几何占18%,物理和力学占28%,天文学占11%,弹道学、航海学、建筑学等占3%。
1733年,年仅26岁的欧拉担任了彼得堡科学院数学教授。
1741年到柏林担任科学院物理数学所所长,直到1766年,重回彼得堡,没有多久,完全失明。
欧拉在数学上的建树很多,对著名的哥尼斯堡七桥问题的解答开创了图论的研究。
图论欧拉,Page7,2022/10/7,能否从某个地方出发,穿过所有的桥仅一次后再回到出发点?
哥尼斯堡七桥问题,18世纪东普鲁士哥尼斯堡被普列戈尔河分为四块,它们通过七座桥相互连接。
当时该城的市民热衷于这样一个游戏:
“一个散步者怎样才能从某块陆地出发,经每座桥一次且仅一次回到出发点?
”,2022/10/7,七桥问题的图模型,欧拉回路的判定规则:
1.如果通奇数桥的地方多于两个,则不存在欧拉回路;2.如果只有两个地方通奇数桥,可以从这两个地方之一出发,找到欧拉回路;3.如果没有一个地方是通奇数桥的,则无论从哪里出发,都能找到欧拉回路。
Page9,2022/10/7,最短路问题(SPPshortestpathproblem)一名货柜车司机奉命在最短的时间内将一车货物从甲地运往乙地。
从甲地到乙地的公路网纵横交错,因此有多种行车路线,这名司机应选择哪条线路呢?
假设货柜车的运行速度是恒定的,那么这一问题相当于需要找到一条从甲地到乙地的最短路。
旅行商问题(TSPtravelingsalesmanproblem)一名推销员准备前往若干城市推销产品。
如何为他(她)设计一条最短的旅行路线(从驻地出发,经过每个城市恰好一次,最后返回驻地)?
这一问题的研究历史十分悠久,通常称之为旅行商问题。
中国邮递员问题(CPPChinesepostmanproblem)一名邮递员负责投递某个街区的邮件。
如何为他(她)设计一条最短的投递路线(从邮局出发,经过投递区内每条街道至少一次,最后返回邮局)?
由于这一问题是我国管梅谷教授1960年首先提出的,所以国际上称之为中国邮递员问题。
运输问题(transportationproblem)某种原材料有N个产地,现在需要将原材料从产地运往M个使用这些原材料的工厂。
假定N个产地的产量和M家工厂的需要量已知,单位产品从任一产地到任一工厂的运费已知,那么如何安排运输方案可以使总运输成本最低?
公路连接问题某一地区有若干个主要城市,现准备修建高速公路把这些城市连接起来,使得从其中任何一个城市都可以经高速公路直接或间接到达另一个城市。
假定已经知道了任意两个城市之间修建高速公路的成本,那么应如何决定在哪些城市间修建高速公路,使得总成本最小?
上述问题有两个共同的特点:
一、它们的目的都是从若干可能的安排或方案中寻求某种意义下的最优安排或方案,数学上把这种问题称为最优化或优化(optimization)问题;二、它们都易于用图形的形式直观地描述和表达,数学上把这种与图相关的结构称为网络(network)。
与图和网络相关的最优化问题就是网络最优化或称网络优化(networkoptimization)问题。
线性表每个数据元素只有一个直接前驱和一个直接后继。
树形结构每个数据元素只有一个直接前驱,但可能有多个直接后继。
图形结构每个数据元素可能有多个直接前驱和多个直接后继。
图是比线性表和树复杂的数据结构,广泛应用于计算机、逻辑学、物理、化学等领域。
图的基本特性,网络拓扑结构,社交网络,图像处理,物理化学结构,电脑游戏,2022/10/7,图的定义,图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:
G=(V,E)其中:
G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。
在线性表中,元素个数可以为零,称为空表;在树中,结点个数可以为零,称为空树;在图中,顶点个数不能为零,但可以没有边。
Page15,如果图的任意两个顶点之间的边都是无向边,则称该图为无向图。
若顶点vi和vj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)。
若从顶点vi到vj的边有方向,则称这条边为有向边,表示为。
如果图的任意两个顶点之间的边都是有向边,则称该图为有向图。
图的基本术语,Page16,简单图:
在图中,若不存在顶点到其自身的边,且同一条边不重复出现。
数据结构中讨论的都是简单图。
邻接、依附无向图中,对于任意两个顶点vi和顶点vj,若存在边(vi,vj),则称顶点vi和顶点vj互为邻接点,同时称边(vi,vj)依附于顶点vi和顶点vj。
V1的邻接点:
V2的邻接点:
V2、V4,V1、V3、V5,2022/10/7,邻接、依附有向图中,对于任意两个顶点vi和顶点vj,若存在弧,则称顶点vi邻接到顶点vj,顶点vj邻接自顶点vi,同时称弧依附于顶点vi和顶点vj。
V1的邻接点:
V3的邻接点:
V2、V3,V4,2022/10/7,无向完全图:
在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。
有向完全图:
在有向图中,如果任意两个顶点之间都存在方向相反的两条弧,则称该图为有向完全图。
2022/10/7,含有n个顶点的无向完全图有多少条边?
含有n个顶点的有向完全图有多少条弧?
含有n个顶点的无向完全图有n(n-1)/2条边。
含有n个顶点的有向完全图有n(n-1)条边。
2022/10/7,稀疏图:
称边数很少的图为稀疏图;稠密图:
称边数很多的图为稠密图。
顶点的度:
在无向图中,顶点v的度是指依附于该顶点的边数,通常记为TD(v)。
顶点的入度:
在有向图中,顶点v的入度是指以该顶点为弧头的弧的数目,记为ID(v);顶点的出度:
在有向图中,顶点v的出度是指以该顶点为弧尾的弧的数目,记为OD(v)。
2022/10/7,在具有n个顶点、e条边的无向图G中,各顶点的度之和与边数之和的关系?
在具有n个顶点、e条边的有向图G中,各顶点的入度之和与各顶点的出度之和的关系?
与边数之和的关系?
2022/10/7,权:
是指对边赋予的有意义的数值量。
网:
边上带权的图,也称网图。
图结构中的权和哈夫曼树中的权有什么区别?
2022/10/7,路径:
在无向图G=(V,E)中,从顶点vp到顶点vq之间的路径是一个顶点序列(vp=vi0,vi1,vi2,vim=vq),其中,(vij-1,vij)E(1jm)。
若G是有向图,则路径也是有方向的,顶点序列满足E。
一般情况下,图中两个顶点之间的路径不唯一。
在什么情况下唯一?
V1到V4的路径:
V1V4V1V2V3V4V1V2V5V3V4,2022/10/7,路径长度:
非带权图路径上边的个数带权图路径上各边的权之和,V1V4:
长度为1V1V2V3V4:
长度为3V1V2V5V3V4:
长度为4,2022/10/7,路径长度:
非带权图路径上边的个数带权图路径上各边的权之和,V1V4:
长度为8V1V2V3V4:
长度为7V1V2V5V3V4:
长度为15,2022/10/7,回路(环):
第一个顶点和最后一个顶点相同的路径。
简单路径:
序列中顶点不重复出现的路径。
简单回路(简单环):
除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路。
2022/10/7,子图:
若图G=(V,E),G=(V,E),如果VV且EE,则称图G是G的子图。
2022/10/7,连通图:
在无向图中,如果从一个顶点vi到另一个顶点vj(ij)有路径,则称顶点vi和vj是连通的。
如果图中任意两个顶点都是连通的,则称该图是连通图。
连通分量:
非连通图的极大连通子图称为连通分量。
如何求得一个非连通图的连通分量?
2022/10/7,V1,V2,V3,V4,V5,V6,V7,连通分量是对无向图的一种划分。
Page32,2022/10/7,强连通图:
在有向图中,对图中任意一对顶点vi和vj(ij),若从顶点vi到顶点vj和从顶点vj到顶点vi均有路径,则称该有向图是强连通图。
强连通分量:
非强连通图的极大强连通子图。
如何求得一个有向非连通图的强连通分量?
2022/10/7,V1,V2,2022/10/7,生成树:
n个顶点的连通图G的生成树是包含G中全部顶点的一个极小连通子图。
生成森林:
在非连通图中,由每个连通分量都可以得到一棵生成树,这些连通分量的生成树就组成了一个非连通图的生成森林。
如何理解极小连通子图?
2022/10/7,图的基础知识,图的概念与基本术语图的类型定义与存储图的遍历图的连通性与最小生成树,Page36,2022/10/7,2022/10/7,图的抽象数据类型定义如下:
ADTGraph数据对象V:
V是具有相同特性的数据元素的集合,称为顶点集。
数据关系R:
R=VRVR|v,wV且P(v,w),表示从v到w的弧,谓词P(v,w)定义了弧的意义或信息,Page38,2022/10/7,G1=(V1,VR1)V1=A,B,C,D,EVR1=,G2=(V2,VR2)V2=A,B,C,D,E,FVR2=(A,B),(A,E),(B,E),(C,D),(D,F),(B,F),(C,F),Page39,2022/10/7,图的基本操作:
CreateGraph(初始条件:
图G存在,u和G中顶点有相同特征。
操作结果:
若G中存在和u相同的顶点,则返回该顶点在图中位置;否则返回其它信息。
GetVex(G,v);初始条件:
图G存在,v是G中某个顶点。
操作结果:
返回v的值。
FirstAdjVex(G,v);初始条件:
图G存在,v是G中某个顶点。
操作结果:
返回v的第一个邻接点。
若该顶点在G中没有邻接点,则返回“空”。
NextAdjVex(G,v,w);初始条件:
图G存在,v是G中某个顶点,w是v的邻接顶点。
操作结果:
返回v的(相对于w的)下一个邻接点。
若w是v的最后一个邻接点,则返回“空”。
Page41,2022/10/7,PutVex(初始条件:
图G存在,v是G中某个顶点。
操作结果:
删除G中顶点v及其相关的弧。
2022/10/7,InsertArc(初始条件:
图G存在,v和w是G中两个顶点。
操作结果:
在G中删除弧,若G是无向的,则还删除对称弧。
Page43,2022/10/7,DFSTraverse(G,Visit();初始条件:
图G存在,Visit是顶点的应用函数。
操作结果:
对图G进行深度优先遍历。
遍历过程中对每个顶点调用函数Visit一次且仅一次。
一旦visit()失败,则操作失败。
BFST
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件