最新图的基本概念及基本操作ppt课件.ppt
《最新图的基本概念及基本操作ppt课件.ppt》由会员分享,可在线阅读,更多相关《最新图的基本概念及基本操作ppt课件.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图的基本概念及基本操作图的基本概念及基本操作218、图的基本概念、图的基本操作,、图的基本概念、图的基本操作,以及图的对象抽象模型以及图的对象抽象模型 掌握图的定义、结点、边、弧、邻接、关掌握图的定义、结点、边、弧、邻接、关联、度、权、路径、子图、连通等有关术联、度、权、路径、子图、连通等有关术语及其图的检索、插入、删除、求邻接点、语及其图的检索、插入、删除、求邻接点、关联边、图的遍历等基本操作关联边、图的遍历等基本操作 ,了解图,了解图结点抽象模型、图的边对象抽象模型和图结点抽象模型、图的边对象抽象模型和图对象的抽象模型对象的抽象模型9 例例 181设有两个二元组设有两个二元组G1=(V1,
2、 R1)与与G2=(V2, R2),其,其中,中, V1=1, 2, 3, 4, 5 R1=VR1 VR1=, , , , , V2=a, b, c, d R2=VR2 VR2=(a,b), (a, d), (b, d), (d, c) 显然,它们不满足线性结构、广义表和树的定义,而显然,它们不满足线性结构、广义表和树的定义,而满足图的定义。满足图的定义。210 4邻接、关联邻接、关联 对图中任意结点对图中任意结点x与与y,若它们之间存在边(即有,若它们之间存在边(即有,或,或),则称),则称x与与y邻接邻接(adjacent),它们互为邻接点。同时称,它们互为邻接点。同时称x或或y与边与边(
3、或(或或或(x,y))关联)关联(incident)。 5度度 对任一结点对任一结点x,称以它为头的弧的个数为它的入度,称以它为头的弧的个数为它的入度(In degree);称以它为尾的弧的个数为它的称以它为尾的弧的个数为它的出度出度(out degree);称它的入度与出;称它的入度与出度之和为它的度之和为它的度度(degree)。对无向图,无出度入度之分,直接称。对无向图,无出度入度之分,直接称与它关联的边的个数为它的度。与它关联的边的个数为它的度。例如,图例如,图6-1(a)中的结点中的结点1的出度的出度与入度都为与入度都为2,结点,结点3的出度入度分别为的出度入度分别为1和和0,(b)
4、中的结点中的结点a、b、度均为度均为2,而,而d的度为的度为3 3,c的度为的度为1。 116权权 权权(Weight)与哈夫曼树中的概念相同,即权是一个数值量,与哈夫曼树中的概念相同,即权是一个数值量,是某些信息的数字化抽象。权分边权与结点权,分别是边与结点是某些信息的数字化抽象。权分边权与结点权,分别是边与结点的问题世界所关心的信息的数值化表示。例如,若结点代表城市,的问题世界所关心的信息的数值化表示。例如,若结点代表城市,则边权可代表城市之间的交通费用。则边权可代表城市之间的交通费用。 7路径(通路)路径(通路) 对有向图,若存在弧序列对有向图,若存在弧序列 , 且且n1,则称从,则称从
5、x0到到xn有通路(路径)有通路(路径)(Path)。上列序列称。上列序列称为为x0到到xn的路径。该路径也可表示为的路径。该路径也可表示为 (x0, x1, ,xn)12对无向图,若有边序列对无向图,若有边序列 (x0,x1),(x1,x2),(xn-1,xn) 且且n1,则称,则称x0与与xn之间有路径(通路),该路径可用上之间有路径(通路),该路径可用上列边序列表示,亦可用下列结点序列表示列边序列表示,亦可用下列结点序列表示 (x0, x1, ,xn) 路径中边的数目称为路径中边的数目称为路径长路径长。 若若x0=xn,则称相应的路径为,则称相应的路径为回路回路/环路环路(loop)。
6、若在路径若在路径(x0, x1, ,xn)中,除中,除x0与与xn外,任意其它结外,任意其它结点均不相同,则称该路径为点均不相同,则称该路径为简单路径简单路径(Simple Path)。起点。起点与终点重合的简单路径称为与终点重合的简单路径称为简单回路简单回路(Simple Loop)。 UU 显然,简单路径中不含回路。显然,简单路径中不含回路。13 8子图子图/生成图生成图 若某图若某图G的结点集合与边集合分别是另一图的结点集合与边集合分别是另一图G的结点集的结点集合和边集合的子集,则称合和边集合的子集,则称G为为G的的子图子图(Subgraph)。 设有两个图设有两个图G与与G,若它们的,
7、若它们的结点集合相同结点集合相同,但,但G的边的边集合是集合是G的边集合的子集,则称的边集合的子集,则称G是是G的的生成图生成图(Spanning Graph)。 显然,生成图一定是子图,但反之未必。显然,生成图一定是子图,但反之未必。e ef fbd dca ae ef fbd dca ae ef fd da a14 10生成树生成树 无回路的连通的无向图的生成图,称为该无向图的无回路的连通的无向图的生成图,称为该无向图的生成生成树树(Spanning Tree)。 9连通连通 若图中任意两结点若图中任意两结点x和和y,或,或x到到y有通路,或有通路,或y到到x有通路,有通路,则称该图是则称
8、该图是(弱)连通的(弱)连通的(Connected);若;若x到到y有通路,且有通路,且y到到x有通路,则称该图是有通路,则称该图是强连通的强连通的(Strongly Connected)。若。若图中某子图是连通的,则称该子图为一个图中某子图是连通的,则称该子图为一个连通分量连通分量(Connected Component)。若。若G的某子图的某子图G是连通的,并且,是连通的,并且,若将若将G中任意其他结点及其任意相关联的边加入到中任意其他结点及其任意相关联的边加入到G,都会导,都会导致致G不连通,那么称不连通,那么称G是一个是一个极大连通分量(极大连通分量(Maximum Connected
9、 Component)。显然极大连通分量不唯一。显然极大连通分量不唯一。 15证:先归纳证明,边的个数不能少于结点数减证:先归纳证明,边的个数不能少于结点数减1(否(否则图就不连通了)。再证明,边数必不大于结点数则图就不连通了)。再证明,边数必不大于结点数减减1,因为若有,因为若有n个结点,则有个结点,则有(n-1)条边就使这条边就使这n个结个结点连通了,若再添加一条边,则这条边关联的两结点连通了,若再添加一条边,则这条边关联的两结点间的路径就多于点间的路径就多于1条了,从而构成回路。综合这两条了,从而构成回路。综合这两个方面,就证得了本定理。个方面,就证得了本定理。 参见参见p9图图定理定理
10、 7 1生成树中边的个数为结点个生成树中边的个数为结点个数减数减1.1618.2.2 图的基本操作图的基本操作 图是一种与具体应用密切相关的结构,有关它的基本图是一种与具体应用密切相关的结构,有关它的基本操作也往往随应用不同而出入很大操作也往往随应用不同而出入很大. . 检索:检索: 按结点编号或内容检索结点位置按结点编号或内容检索结点位置 按边的两顶点检索边按边的两顶点检索边 插入:插入: 插入结点插入结点 插入边插入边 删除:删除: 删除结点及与其关联的边删除结点及与其关联的边 删除边删除边17 求邻接点、关联边求邻接点、关联边 求度(入度与出度)求度(入度与出度) 求路径求路径 图的遍历
11、图的遍历 求子图求子图 求生成图求生成图 求连通分量求连通分量 求拓扑序列(有向图)求拓扑序列(有向图) 求(最小)生成树求(最小)生成树 求关键路径求关键路径 求最短路径求最短路径 1818.3 18.3 图的对象抽象模型图的对象抽象模型 这里,我们仅从逻辑关系出发,考虑这里,我们仅从逻辑关系出发,考虑图结点和整个图对象应具有的性质。由图结点和整个图对象应具有的性质。由于图结点的关系不象其他结构中结点那于图结点的关系不象其他结构中结点那样有限制,所以它的抽象结构比较复杂。样有限制,所以它的抽象结构比较复杂。 19 为了后面的使用,首先定义一个枚举类型为了后面的使用,首先定义一个枚举类型和常量
12、:和常量: enum TTraverseMode DFS, WFS; /定义枚举类型,表示图遍历方式定义枚举类型,表示图遍历方式 const CNST_NumNodes=100; /定义常量,表示最大结点个数。实际定义常量,表示最大结点个数。实际结点个数可以小于该数结点个数可以小于该数 2018.3.1 图结点抽象模型图结点抽象模型 图结点抽象模型重点是描述图结图结点抽象模型重点是描述图结点的内容,隐蔽具体的图结点的结构。点的内容,隐蔽具体的图结点的结构。所以,图结点对象模型中,重点是关所以,图结点对象模型中,重点是关于结点信息的于结点信息的Get和和Set类操作。类操作。 下面是图结点的描述
13、:下面是图结点的描述:21 template /结点内容的类型(可变类型)结点内容的类型(可变类型) struct TGraphNode0 /图结点类图结点类 long no; /图结点的编号图结点的编号 float weight; /结点的权结点的权 TElem info; /图结点的内容图结点的内容 virtual long GetNo() return no; virtual void SetNo(long mNo) no = mNo; virtual TElem& GetElem() return info; virtual TElem& SetElem(TElem &e) info
14、= e; return info; virtual float GetWeight() return weight; virtual float SetWeight(TElem &w) weight = w; return weight; ; 22 该类的各基本操作都已在类定义中实现,所以已该类的各基本操作都已在类定义中实现,所以已不属于抽象类,但其在整个图类中,扮演抽象类不属于抽象类,但其在整个图类中,扮演抽象类的作用。该类中主要成员说明如下:的作用。该类中主要成员说明如下: GetNo():返回本结点的编号。:返回本结点的编号。 SetNo(long mNo):将:将mNo做为本结点的编号
15、值。做为本结点的编号值。 GetElem():返回本结点的值。:返回本结点的值。 SetElem(TELem &e):将:将e做为本结点做为本结点的元素值。的元素值。 GetWeight():返回本结点的权值。:返回本结点的权值。 SetWeight(TELem &w):将:将w做为本结点的权值。做为本结点的权值。 2318.3.2 图的边对象抽象模型图的边对象抽象模型 边实质上就是元素间的关系。在图中,边不仅仅边实质上就是元素间的关系。在图中,边不仅仅表达的是逻辑关系,它本身也可以具有其他的属性,表达的是逻辑关系,它本身也可以具有其他的属性,如权值。因此,有必要专门建立针对图的边的对象如权值
16、。因此,有必要专门建立针对图的边的对象模型。模型。 与结点类与结点类TgraphNode0类似类似,该类的成员函数也,该类的成员函数也都实现,在语法上不属于抽象类。都实现,在语法上不属于抽象类。 24template struct TGraphEdge0 /图边抽象类图边抽象类 long startNo, endNo; /边的起点和终点边的起点和终点 float weight; /边权边权 TElem info; /边的内容边的内容 virtual TElem &GetElem() return info; /读边内容读边内容 virtual TElem &SetElem(TElem &e)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 基本概念 基本 操作 ppt 课件
限制150内