第七章 图
第七章 图论
12
7.1 图及相关概念
7.1.5 子图
Graphs
图论
定义7-1.8 给定图G1=<V1,E1>和G2=<V2,E2> , (1)若V1V2 ,E1E2 ,则称G1为G2的子图。 (2)若V1=V2 ,E1E2 ,则称G1为G2的生成子图。
上图中G1和G2都是G的子图,
但只有G2是G的生成子图。
chapter7
18
7.1 图及相关概念
7.1.6 图的同构
Graphs
图论
【例4】 设G1,G2,G3,G4均是4阶3条边的无向简单图,则
它们之间至少有几个是同构的? 解:由下图可知,4阶3条边非同构的无向简单图共有3个, 因此G1,G2,G3,G4中至少有2个是同构的。
4/16/2014 5:10 PM
4/16/2014 5:10 PM chapter7 10
7.1 图及相关概念
7.1.3 完全图
Graphs
图论
【例2】证明在 n(n≥2 )个人的团体中,总有两个人在 此团体中恰好有相同个数的朋友。 分析 :以结点代表人,二人若是朋友,则在结点间连上一 证明:用反证法。 条边,这样可得无向简单图G,每个人的朋友数即该结点 设 G 中各顶点的度数均不相同,则度数列为 0 , 1 , 2 , …, 的度数,于是问题转化为: n 阶无向简单图 G中必有两个 n-1 ,说明图中有孤立顶点,与有 n-1 度顶点相矛盾(因 顶点的度数相同。 为是简单图),所以必有两个顶点的度数相同。
vV1
deg(v) deg(v) deg(v) 2 | E |
vV2 vV
由于 deg( v) 是偶数之和,必为偶数,
vV1
第七章 神经组织思维导图
第七章 神经组织总论组成神经细胞(神经元)神经胶质细胞功能神经元接受刺激、整合信息、传导冲动把接受的信息加以分析或贮存传递信息给各种肌细胞、腺细胞等效应细胞,以产生效应意识、记忆、思维和行为调节的基础神经胶质细胞支持、保护、营养和绝缘等参与神经递质和活性物质的代谢神经元神经元的结构胞体形态圆形,锥形,梭形和星形等分布位于灰质、皮质和神经节内功能神经元的营养和代谢中心光镜电镜结构细胞核位于胞体中央,大而圆核被膜明显着色浅,核仁大而圆细胞质特征性结构尼氏体神经原纤维两者不可在同一切片看到尼氏体强嗜碱性,HE染色紫蓝色均匀分布粗块状或小颗粒状有发达的粗面内质网和游离核糖体合成更新细胞器所需的结构蛋白、神经递质所需的酶类及肽类神经调质但是,不合成神经递质神经原纤维(嗜银纤维)HE染色切片无法分辨镀银染色呈棕黑色细丝,交错排列成网构成神经丝由神经丝蛋白构成的中间丝微管微管相关蛋白2构成神经元的细胞骨架,微管参与物质运输有脂褐素一种溶酶体的残余体细胞膜可兴奋膜双层脂质结构接受刺激、处理信息、产生并传导神经冲动树突每个神经元有一至多个树突内部结构同胞体有尼氏体和神经原纤维功能极大地扩展了神经元接受刺激的表面积轴突每个神经元有一条轴突无尼氏体,有神经原纤维、神经丝、微管、微丝比树突细无粗面内质网和游离核糖体神经丝、微管和微丝之间均有横桥连接, 构成轴质中的网架轴突运输(轴突内的物质运输)慢速轴突运输运输新形成的神经丝、微丝和微管快速顺向轴突运输快速逆向轴突运输神经元的分类按神经元的突起数量多极神经元双极神经元假单极神经元呈T形分为两支,周围突(分布到周围器官,接受刺激,具有树突的功能)和中枢突(进入中枢神经系统,传出冲动,为轴突)按神经元轴突的长短高尔基Ⅰ型神经元长轴突高尔基Ⅱ型神经元短轴突按神经元的功能感觉神经元(传入)多为假单极神经元运动神经元(传出)一般为多极神经元中间神经元主要为多极神经元学习、记忆和思维的基础按神经递质和调质的化学性质胆碱能神经元去甲肾上腺素能神经元胺能神经元氨基酸能神经元肽能神经元一氧化氮(NO)和一氧化碳(CO)也是一种神经递质突触概念神经元与神经元之间,或神经元与效应细胞之间传递信息的结构细胞连接方式轴-体突触轴-树突触轴-棘突触分类化学突触(人体主要)以神经递质作为传递信息的媒介HE染色不可分辨电突触缝隙连接,以电流作为信息载体存在于中枢神经系统和视网膜内的同类神经元之间化学性突触的结构 (电镜)突触前成分在镀银染色的切片呈棕黑色的圆形颗粒,称突触小体有线粒体、微丝和微管,无神经丝有突触小泡含神经递质或调质表面附有一种蛋白质,称突触素,将小泡连接干细胞骨架突触前膜较厚突触间隙15~30nm突触后成分突触后膜含有特异性的神经递质和调质的受体及离子通道突触的兴奋或抑制,取决于神经递质及其受体的种类Na+ → 兴奋Cl- → 抑制特点一个神经元可以通过突触把信息传递给许多其他神经元或效应细胞一个运动神经元可同时支配上千条骨骼肌纤维一个神经元也可以通过突触接受来自许多其他神经元的信息小脑的浦肯野细胞的树突上有数十万个突触神经胶质细胞功能支持、营养、保护和分隔神经元保证信息传递的专一性和不受干扰中枢神经系统胶质细胞HE染色中,除室管膜细胞外,都不易区分星形胶质细胞形态体积最大星形核圆或卵圆形胞质内含胶质丝(胶质原纤维酸性蛋白构成的中间丝)有些突起末端扩展形成脚板在脑和脊髓表面形成胶质界膜构成血-脑屏障的神经胶质膜功能支持和绝缘分泌神经营养因子和多种生长因子维持神经元的分化、功能,以及创伤后神 经元的可塑性变化组织损伤时,细胞增生形成胶质瘢痕少突胶质细胞分布神经元胞体附近及轴突周围形态胞体较小突起较少功能是中枢神经系统的髓鞘形成细胞(与施万细胞一起作用)小胶质细胞形态体积最小核小、染色深源于血液的单核细胞从两端发起突起功能中枢神经系统损伤时转变为巨噬细胞,具有吞噬作用室管膜细胞分布衬在脑室和脊髓中央管的腔面形态呈立方或柱状单层上皮游离面有微绒毛,少数细胞有纤毛功能参与产生脉络丛的脑脊液周围神经系统胶质细胞施万细胞参与周围神经系统中神经纤维的构成参与有髓神经纤维髓鞘形成分泌神经营养因子,促进受损的神经元存活及其轴突的再生卫星细胞有突起一层扁平或立方形细胞支持、保护、营养作用神经纤维和神经神经纤维构成神经元的长轴突神经胶质细胞根据神经胶质细胞是否形成髓鞘有髓神经纤维无髓神经纤维神经神经末梢。
第七章吸附与离子交换_图文
活性炭对物质的吸附规律
活性炭是非极性吸附剂,因此在水中吸附能力大于有 机溶剂中的吸附能力。 针对不同的物质,活性炭的吸附遵循以下规律: ①对极性基团多的化合物的吸附力大于极性基团少的化合
物; ②对芳香族化合物的吸附能力大于脂肪族化合物; ③对相对分子量大的化合物的吸附力大于相对分子量小的
化合物; ④pH 值的影响 ;
7-3
7.2吸附过程的理论基础
7.2.1吸附原理
固体的分类:多孔和非多孔性 比表面的组成:多孔性固体的比表面是由“外表
面”和“内表面”所组成。表面积大并 且有较高的吸附势。 表面力的产生和吸附力的关系:见图7-4 界面分子的力场是不饱和的,能从外界吸附分 子、原子、或离子,形成多分子层或单分子层。 吸附过程中的几个名词: ⑴吸附作用 ⑵吸附剂 ⑶吸附物(质)
7.1概述
7.1.1什么叫吸附
吸附是利用吸附剂对液体或气体中某一组分具有选择性吸 附的能力,使其富集在吸附剂表面的过程。
吸附过程通常包括: 待分离料液与吸附剂混合、吸附质被吸附到吸附剂表
面、料液流出、吸附质解吸回收等四个过程。
料液与吸 附剂混合
Step1
吸附质 被吸附
Step2
料液 流出
Step3
001×7-交联度为7%的苯乙烯 系凝胶型强酸性阳离子交换树脂
骨架代号 D315:大孔型丙烯酸弱碱
分类代号
性阴离子交换树脂
大孔型代号
大孔型
代号 0 1 2 3 4 5 6
离子交换树脂命名法代号表
分类名称
骨架名称
强酸性
苯乙烯系
弱酸性
丙烯酸系
强碱性
酚醛系
弱碱性
环氧系
螯合性
乙烯吡啶系
第七章图 习题答案
第七章图习题答案基础知识:7.1 在图7.23所示的各无向图中:(1)找出所有的简单环。
(2)哪些图是连通图?对非连通图给出其连通分量。
(3)哪些图是自由树(或森林)?答:(1)所有的简单环:(同一个环可以任一顶点作为起点)(a)1231(b)无(c)1231、2342、12341(d)无(2)连通图:(a)、(c)、(d)是连通图,(b)不是连通图,因为从1到2没有路径。
具体连通分量为:(3)自由树(森林):自由树是指没有确定根的树,无回路的连通图称为自由树:(a)不是自由树,因为有回路。
(b)是自由森林,其两个连通分量为两棵自由树。
(c)不是自由树。
(d)是自由树。
7.2 在图7.24(下图)所示的有向图中:(1) 该图是强连通的吗? 若不是,则给出其强连通分量。
(2) 请给出所有的简单路径及有向环。
(3) 请给出每个顶点的度,入度和出度。
(4) 请给出其邻接表、邻接矩阵及逆邻接表。
答:(1)该图是强连通的,所谓强连通是指有向图中任意顶点都存在到其他各顶点的路径。
(2)简单路径是指在一条路径上只有起点和终点可以相同的路径:有v1v2、v2v3、v3v1、v1v4、v4v3、v1v2v3、v2v3v1、v3v1v2、v1v4v3、v4v3v1、v3v1v4、另包括所有有向环,有向环如下:v1v2v3v1、v1v4v3v1(这两个有向环可以任一顶点作为起点和终点)(3)每个顶点的度、入度和出度:D(v1)=3ID(v1)=1OD(v1)=2D(v2)=2 ID(v2)=1OD(v2)=1D(v3)=3 ID(v3)=2OD(v3)=1D(v4)=2 ID(v4)=1OD(v4)=1(4)邻接表:(注意边表中邻接点域的值是顶点的序号,这里顶点的序号是顶点的下标值-1) vertex firstedge next┌─┬─┐┌─┬─┐┌─┬─┐0│v1│─→│ 1│─→│ 3│∧│├─┼─┤├─┼─┤└─┴─┘1│v2│─→│ 2│∧│├─┼─┤├─┼─┤2│v3│─→│ 0│∧│├─┼─┤├─┼─┤3│v4│─→│ 2│∧│└─┴─┘└─┴─┘逆邻接表:┌─┬─┐┌─┬─┐0│v1│─→│ 2│∧│├─┼─┤├─┼─┤1│v2│─→│ 0│∧│├─┼─┤├─┼─┤┌─┬─┐2│v3│─→│ 1│─→│ 3│∧│├─┼─┤├─┼─┤└─┴─┘3│v4│─→│ 0│∧│└─┴─┘└─┴─┘邻接矩阵:0 1 0 10 0 1 01 0 0 00 0 1 07.3 假设图的顶点是A,B...,请根据下述的邻接矩阵画出相应的无向图或有向图。
《数据结构图论部分》PPT课件
Page 4
2020/11/24
哥尼斯堡七桥问题
能否从某个地方出发,穿过所有的桥仅一次 后再回到出发点?
Page 5
2020/11/24
七桥问题的图模型
欧拉回路的判定规则:
1.如果通奇数桥的地方多于
C
两个,则不存在欧拉回路;
2.如果只有两个地方通奇数
桥,可以从这两个地方之一
A
B 出发,找到欧拉回路;
V4 是有向边,则称该图为有向图。
Page 9
2020/11/24
简单图:在图中,若不存在顶点到其自身的边,且同 一条边不重复出现。
V1
V2
V3
V4
V5
非简单图
V1
V2
V3
V4
V5
非简单图
V1
V2
V3
V4
V5
简单图
❖ 数据结构中讨论的都是简单图。
Page 10
2020/11/24
图的基本术语
邻接、依附
DeleteVex(&G, v); 初始条件:图 G 存在,v 是 G 中某个顶点。 操作结果:删除 G 中顶点 v 及其相关的弧。
Page 34
2020/11/24
InsertArc(&G, v, w); 初始条件:图 G 存在,v 和 w 是 G 中两个顶点。 操作结果:在 G 中增添弧<v,w>,若 G 是无向的,则还
Page 2
2020/11/24
• 知识点
– 图的类型定义 – 图的存储表示 – 图的深度优先搜索遍历和广度优先搜索遍历 – 无向网的最小生成树 – 拓扑排序 – 关键路径 – 最短路径
Page 3
图
第七章图一、选择题1、对于具有n个顶点的图,若采用邻接矩阵表示,则该矩阵的大小为()。
A. nB. n2C. n-1D. (n-1)22、如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是()。
A. 完全图B. 连通图C. 有回路D. 一棵树解析:在无向图中,如果从顶点v到顶点v1存在路径,则称v和v1是连通的。
完全图:若一个图的每一对不同顶点都恰有一条边相连。
3、关键路径是事件结点网络中()。
A. 从源点到汇点的最长路径B. 从源点到汇点的最短路径C. 最长的回路D. 最短的回路4、下面()可以判断出一个有向图中是否有环(回路)。
A. 广度优先遍历B. 拓扑排序C. 求最短路径D. 求关键路径5、带权有向图G用邻接矩阵A存储,则顶点i的入度等于A中()。
A. 第i行非无穷的元素之和B. 第i列非无穷的元素个数之和C. 第i行非无穷且非0的元素个数D. 第i行与第i列非无穷且非0的元素之和6、采用邻接表存储的图,其深度优先遍历类似于二叉树的()。
A. 中序遍历B. 先序遍历C. 后序遍历D. 按层次遍历7、无向图的邻接矩阵是一个()。
A. 对称矩阵B. 零矩阵C. 上三角矩阵D. 对角矩阵8、当利用大小为N的数组存储循环队列时,该队列的最大长度是()。
A. N-2B. N-1C. ND. N+1当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为?解析:n+1 因为队列的头指针指向的是第一个元素的前一个结点,而不是指向第一个元素,因此队列的头指针要占用一个结点长度,所以队列的长度就是n+1;9、邻接表是图的一种()。
A. 顺序存储结构B.链式存储结构C. 索引存储结构D. 散列存储结构10、下面有向图所示的拓扑排序的结果序列是()。
A. 125634B. 516234C. 123456D. 52164313256411、在无向图中定义顶点vi与vj之间的路径为从vi到vj的一个()。
第七章 序列图
序列图的基本概念
2. 序列图在项目开发里的作用
序列图作为一种描述在给定语境中消息是如何在对象间传递的图 形化方式,在使用其进行建模时,主要可以将其用途分为以下三 个方面: (1)确认和丰富一个使用语境的逻辑表达。一个系统的使用情境就 是系统潜在的使用方式的描述,也就是它的名称所要描述的。一 个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。 (2)细化用例的表达。我们前面已经提到,序列图的主要用途之一, 就是把用例表达的需求,转化为进一步、更加正式层次的精细表 达。用例常常被细化为一个或者更多的序列图。 (3)有效地描述如何分配各个类的职责以及各类具有相应职责的原 因。我们可以根据对象之间的交互关系来定义类的职责,各个类 之间的交互关系构成一个特定的用例。例如,“Customer对象向 Address对象请求其街道名称”指出Customer对象应该具有“知 道其街道名”这个职责。
序列图中的项目相关概念
2. 分支与从属流
在UML中,存在两种方式可以来修改序列图中消息的 控制流,分别是:分支和从属流。 分支是指的是从同一点发出多个消息的并指向不同的 对象,根据条件是否互斥,可以有条件和并行两种结 构。由于序列图只表示某一个活动按照时间顺序的经 历过程,所以在Rational Rose 2003中,对序列图的分 支画法没有明显的支持。 从属流指的是从同一点发出多个消息指向同一个对象 的不同生命线。从属流在Rational Rose 2003中不支持, 因为添加从属流以后会明显增加序列图的复杂度。
确定序列对象确定序列对象建模序列图的下一步是从左到右布置在该工作流程中所有的参与者和对象同时也包含要添加消息的对象所有的参与者和对象同时也包含要添加消息的对象??建模序列图的下一步是从左到右布置在该工作流程中生命线
第7章图习题及参考答案
第7章-图习题及参考答案第7章习题一、单项选择题1.在无向图中定义顶点的度为与它相关联的()的数目。
A. 顶点B. 边C. 权D. 权值2.在无向图中定义顶点v i与v j之间的路径为从v i到达v j的一个()。
A. 顶点序列B. 边序列C. 权值总和D.边的条数3.图的简单路径是指()不重复的路径。
A. 权值B. 顶点C. 边D. 边与顶点均4.设无向图的顶点个数为n,则该图最多有()条边。
A. n-1B. n(n-1)/2C. n(n+1)/2D.n(n-1)5.n个顶点的连通图至少有()条边。
A. n-1B. nC. n+1D. 06.在一个无向图中,所有顶点的度数之和等于所有边数的( ) 倍。
A. 3B. 2C. 1D. 1/27.若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( )。
A. 上三角矩阵B. 稀疏矩阵C. 对角矩阵D. 对称矩阵8.图的深度优先搜索类似于树的()次序遍历。
A. 先根B. 中根C. 后根D. 层次9.图的广度优先搜索类似于树的()次序遍历。
A. 先根B. 中根C. 后根D. 层次10.在用Kruskal算法求解带权连通图的最小(代价)生成树时,选择权值最小的边的原则是该边不能在图中构成()。
A. 重边B. 有向环C. 回路D. 权值重复的边11.在用Dijkstra算法求解带权有向图的最短路径问题时,要求图中每条边所带的权值必须是()。
A. 非零B. 非整C. 非负D. 非正12.设G1 = (V1, E1) 和G2 = (V2, E2) 为两个图,如果V1 ⊆ V2,E1 ⊆ E2,则称()。
A. G1是G2的子图B. G2是G1的子图C. G1是G2的连通分量D. G2是G1的连通分量13.有向图的一个顶点的度为该顶点的()。
A. 入度B. 出度C. 入度与出度之和D. (入度﹢出度))/214.一个连通图的生成树是包含图中所有顶点的一个()子图。
第7章 图论 -5二部图、平面图
第9章 图论
2)在G中求最大匹配 把边 (a2,b2) 从 M 中去掉,而把 (a1,b2) 和 (a2,b4) 添加到 M 中, 得到新的匹配M′=(a1,b2),(a2,b4),(a3,b3), (a5,b5),如下图所示。 对于匹配M′= (a1,b2),(a2,b4),(a3,b3), (a5,b5)重复上述过程, 已找不到M′可扩路。所以M′就是最大匹配。
第9章 图论
在子图H中,任一结点至多与M中的一条边关联且与M1中 一条边关联。因而任一结点的度数是1或2。故H的连通分支是 一条路,或者是一个回路。 如果 H的连通分支是一条路 P,则它是 M 交替路,也是 M1 交替路。如果P的两个端点均与M中的边关联,则P是M1可扩路。 由假设知, M1 是最大匹配,所以,不存在 M1 可扩路,得到矛 盾。如果P的两个端点均与M1的边关联,那么P是一条M可扩路 与题设矛盾。故 P 只能是一个端点与 M 中的边关联,另一个端 点与M1中的边关联,这样P中属于M的边数与属于M1的边数相 等。 如果 H的连通分支是一个回路,回路中的边交替地属于 M 和M1,因而属于M的边数与属于M1的边数相等。 从上面可以看到,H中属于M的边与属于M1的边的数目相 等。再加上既属于M又属于M1的边,可以得出:M中的边数与 M1中的边数相等。所以,M是最大匹配。
第9章 图论
由上述讨论可见:利用可扩路可以增加匹配所含的边数。 不断地寻求G的可扩路,直到再也找不到新的可扩路,就可得 到一个最大匹配。将这个结论写成下列的定理。 定理 7.5.2 设 G=V1,V2,E是二部图, M为G的最大匹配的充分 必要条件是G中不存在M可扩路。 证明:设M为G的最大匹配,下证G中不存在M可扩路。 如果G中存在一条M可扩路,则可以得到比M的边数多1的 匹配,所以M 不是最大匹配,矛盾。所以G 中不存在M 可扩路。 设G中不存在M可扩路,下证M为G的最大匹配。 设M1是最大匹配,证明|M|=|M1|。 考察属于M而不属于M1和属于M1而不属于M中的边,由这 些边连同它们的端点一起构成G的子图H。
数据结构第七章--图(严蔚敏版)
8个顶点的无向图最多有 条边且该图为连通图 个顶点的无向图最多有28条边且该图为连通图 个顶点的无向图最多有 连通无向图构成条件:边 顶点数 顶点数-1)/2 顶点数*(顶点数 连通无向图构成条件 边=顶点数 顶点数 顶点数>=1,所以该函数存在单调递增的单值反 顶点数 所以该函数存在单调递增的单值反 函数,所以边与顶点为增函数关系 所以28个条边 函数 所以边与顶点为增函数关系 所以 个条边 的连通无向图顶点数最少为8个 所以28条边的 的连通无向图顶点数最少为 个 所以 条边的 非连通无向图为9个 加入一个孤立点 加入一个孤立点) 非连通无向图为 个(加入一个孤立点
28
无向图的邻接矩阵为对称矩阵
2011-10-13
7.2
图的存储结构
Wij 若< vi,vj > 或<vj,v i > ∈E(G)
若G是网(有权图),邻接矩阵定义为 是网(有权图), ),邻接矩阵定义为
A [ i,j ] = , 0或 ∞
如图: 如图:
V1
若其它
V2
3 4
2
V3
2011-10-13
C
A
B
D 2011-10-13 (a )
3
Königsberg七桥问题
• Königsberg七桥问题就是说,能否从某点出发 通过每桥恰好一次回到原地?
C
C
A B
.
A D
B
D (a)
2011-10-13
(b)
4
第七章 图
7.1 图的定义 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图及其应用 7.6 最短路径
2011-10-13
关键路径法
关键路径算法
(1) 输入e条有向边<j,k>,建立AOE网络的存储 结构;
(2) 从源点出发,令ev[1] =0,按拓扑排序的序 列求其余各顶点的最早出现时间ev[i](2≤i≤n)。 若拓扑排序序列中的顶点个数小于网络中的顶 点数n,则说明网络中存在环路,算法中止执 行;否则执行(3);
ev[k]和Lv[k]可以采用下面的递推公式计算: (1) 向汇点递推
由源点的ev[1]=0开始,利用公式:
式向中汇p点表的示方所向有递指推向,顶可点逐的个边求的出集各合顶,点如的图ev 。 7.2意义为:从指向顶点Vk的各边的活动中 取最晚完成的一个活动的完成时间作为Vk的最 早出现时间ev[k]。
数据结构
数据结构
第七章 图
第七章 图
关键路径法
关键路径法是采用边表示活动(Activity On Edge)的网络,简称为AOE网络。
AOE网络是一个带权的有向无环路图,其中, 每个顶点代表一个事件(Event),事件说明某 些活动或某一项活动的完成,即阶段性的结 果。
离开某顶点的各条边所代表的活动,只有在 该顶点对应的事件出现后才能开始。
完成整个工程所需的时间取决于从开始点到 结束点的最长路径长度,此长度最大的路径 叫做关键路径。
分析关键路径的目的是辨别哪些是关键活动, 以便争取提高关键活动的效率,缩短整个工 期。
在描述关键路径的算法时,设活动ai由弧 <j,k>表示,要确定如下几个相关的量:
(1) 事件Vj的最早出现时间和活动的最早开始 时间:从源点V1到某顶点Vj的最长路径长度 叫作事件j的最早出现时间,表示成ev[j]。顶 点Vj的最早出现时间ev[j]决定了从Vj指出的 各条边所代表活动的最早开始时间,因为事 件j不出现,它后面的各项活动就不能开始。 我们以e[i]表示活动ai的最早开始时间。显然 e[i]= ev[j] 。
离散数学第七章图的基本概念知识点总结
图论部分第七章、图的基本概念7.1 无向图及有向图无向图与有向图多重集合: 元素可以重复出现的集合无序积: A&B={(x,y) | x∈A∧y∈B}定义无向图G=<V,E>, 其中(1) 顶点集V≠∅,元素称为顶点(2) 边集E为V&V的多重子集,其元素称为无向边,简称边.例如, G=<V,E>如图所示, 其中V={v1, v2, …,v5}, E={(v1,v1), (v1,v2),(v2,v3), (v2,v3), (v2,v5), (v1,v5), (v4,v5)} ,定义有向图D=<V,E>, 其中(1) V同无向图的顶点集, 元素也称为顶点(2) 边集E为V⨯V的多重子集,其元素称为有向边,简称边.用无向边代替D的所有有向边所得到的无向图称作D的基图,右图是有向图,试写出它的V和E注意:图的数学定义与图形表示,在同构(待叙)的意义下是一一对应的通常用G表示无向图, D表示有向图, 也常用G泛指无向图和有向图, 用e k表示无向边或有向边.V(G), E(G), V(D), E(D): G和D的顶点集, 边集.n 阶图: n个顶点的图有限图: V, E都是有穷集合的图零图: E=∅平凡图: 1 阶零图空图: V=∅顶点和边的关联与相邻:定义设e k=(v i,v j)是无向图G=<V,E>的一条边, 称v i ,vj为e k的端点, e k与v i (v j)关联. 若v i ≠v j, 则称e k与v i (v j)的关联次数为1;若v i = v j, 则称e k为环, 此时称e k与v i 的关联次数为2; 若v i不是e k端点,则称e k与v i 的关联次数为0. 无边关联的顶点称作孤立点.定义设无向图G=<V,E>, v i,v j∈V, e k,e l∈E,若(v i,v j) ∈E, 则称v i,v j相邻; 若e k,e l至少有一个公共端点, 则称e k,e l相邻.对有向图有类似定义. 设e k=〈v i,v j〉是有向图的一条边,又称v i是e k的始点, v j 是e k的终点, v i邻接到v j, v j邻接于v i.邻域和关联集顶点的度数设G=<V,E>为无向图, v∈V,v的度数(度) d(v): v作为边的端点次数之和悬挂顶点: 度数为1的顶点悬挂边: 与悬挂顶点关联的边G的最大度∆(G)=max{d(v)| v∈V}G的最小度δ(G)=min{d(v)| v∈V}例如d(v5)=3, d(v2)=4, d(v1)=4,∆(G)=4, δ(G)=1,v4是悬挂顶点, e7是悬挂边, e是环1设D=<V,E>为有向图, v∈V,v的出度d+(v): v作为边的始点次数之和v的入度d-(v): v作为边的终点次数之和v的度数(度) d(v): v作为边的端点次数之和d(v)= d+(v)+ d-(v)D的最大出度∆+(D), 最小出度δ+(D)最大入度∆-(D), 最小入度δ-(D)最大度∆(D), 最小度δ(D)例如d+(a)=4, d-(a)=1, d(a)=5,d+(b)=0, d-(b)=3, d(b)=3,∆+(D)=4, δ+(D)=0, ∆-(D)=3,δ-(D)=1,∆(D)=5, δ(D)=3.握手定理定理任意无向图和有向图的所有顶点度数之和都等于边数的2倍, 并且有向图的所有顶点入度之和等于出度之和等于边数.证G中每条边(包括环)均有两个端点,所以在计算G中各顶点度数之和时,每条边均提供2度,m条边共提供2m度. 有向图的每条边提供一个入度和一个出度, 故所有顶点入度之和等于出度之和等于边数.图的度数列设无向图G的顶点集V={v1, v2, …, v n}G的度数列: d(v), d(v2), …, d(v n)1如右图度数列:4,4,2,1,3设有向图D的顶点集V={v1, v2, …, v n}D的度数列: d(v), d(v2), …, d(v n)1D的出度列: d+(v), d+(v2), …, d+(v n)1D的入度列: d-(v), d-(v2), …, d-(v n)1如右图度数列:5,3,3,3出度列:4,0,2,1入度列:1,3,1,2例1 (3,3,3,4), (2,3,4,6,8)能成为图的度数列吗?解不可能. 它们都有奇数个奇数.例2 已知图G有10条边, 4个3度顶点, 其余顶点的度数均小于等于2, 问G 至少有多少个顶点?解设G有n个顶点. 由握手定理,4⨯3+2⨯(n-4)≥2⨯10解得n≥8例3 证明不存在具有奇数个面且每个面都具有奇数条棱的多面体.证用反证法. 假设存在这样的多面体,作无向图G=<V,E>, 其中V={v | v为多面体的面},E={(u,v) | u,v∈V∧u与v有公共的棱∧u≠v}.根据假设, |V|为奇数且∀v∈V, d(v)为奇数. 这与握手定理的推论矛盾. 多重图与简单图定义 (1) 在无向图中,如果有2条或2条以上的边关联同一对顶点, 则称这些边为平行边, 平行边的条数称为重数.(2)在有向图中,如果有2条或2条以上的边具有相同的始点和终点, 则称这些边为有向平行边, 简称平行边, 平行边的条数称为重数.(3) 含平行边的图称为多重图.(4) 既无平行边也无环的图称为简单图.注意:简单图是极其重要的概念图的同构定义设G1=<V1,E1>, G2=<V2,E2>为两个无向图(有向图), 若存在双射函数f: V1→V2, 使得对于任意的v,v j∈V1,i(v i,v j)∈E1(<v i,v j>∈E1)当且仅当(f(v i),f(v j))∈E2(<f(v i),f(v j)>∈E2),并且, (v i,v j)(<v i,v j>)与 (f(v i),f(v j))(<f(v i),f(v j)>)的重数相同,则称G1与G2是同构的,记作G1≅G2.几点说明:图之间的同构关系具有自反性、对称性和传递性.能找到多条同构的必要条件, 但它们都不是充分条件:① 边数相同,顶点数相同② 度数列相同(不计度数的顺序)③ 对应顶点的关联集及邻域的元素个数相同,等等若破坏必要条件,则两图不同构至今没有找到判断两个图同构的多项式时间算法完全图:n阶无向完全图K n: 每个顶点都与其余顶点相邻的n阶无向简单图.简单性质: 边数m=n(n-1)/2, ∆=δ=n-1n阶有向完全图: 每对顶点之间均有两条方向相反的有向边的n阶有向简单图.简单性质: 边数m=n(n-1), ∆=δ=2(n-1),∆+=δ+=∆-=δ-=n-1子图:定义设G=<V,E>, G '=<V ',E '>是两个图(1) 若V '⊆V且E '⊆E,则称G '为G的子图, G为G '的母图, 记作G '⊆G(2) 若G '⊆G 且V '=V,则称G '为G的生成子图(3) 若V '⊂V 或E '⊂E,称G '为G的真子图(4) 设V '⊆V 且V '≠∅, 以V '为顶点集, 以两端点都在V '中的所有边为边集的G的子图称作V '的导出子图,记作G[V '](5) 设E '⊆E且E '≠∅, 以E '为边集, 以E '中边关联的所有顶点为顶点集的G的子图称作E '的导出子图, 记作G[E ']补图:定义设G=<V,E>为n阶无向简单图,以V为顶点集,所有使G成为完全图K n的添加边组成的集合为边集的图,称为G的补图,记作 .若G≅ , 则称G是自补图.例对上一页K4的所有非同构子图, 指出互为补图的每一对子图, 并指出哪些是自补图.7.2 通路、回路、图的连通性简单通(回)路, 初级通(回)路, 复杂通(回)路定义给定图G=<V,E>(无向或有向的),G中顶点与边的交替序列Γ=v0e1v1e2…e l v l,(1) 若∀i(1≤i≤l), v i-1, v i是e i的端点(对于有向图, 要求v i-1是始点, v i是终点), 则称Γ为通路, v0是通路的起点, v l是通路的终点, l为通路的长度. 又若v=v l,则称Γ为回路.(2) 若通路(回路)中所有顶点(对于回路, 除v0=v l)各异,则称为初级通路(初级回路).初级通路又称作路径, 初级回路又称作圈.(3) 若通路(回路)中所有边各异, 则称为简单通路(简单回路), 否则称为复杂通路(复杂回路).说明:表示方法① 用顶点和边的交替序列(定义), 如Γ=v0e1v1e2…e l v l② 用边的序列, 如Γ=e1e2…e l③ 简单图中, 用顶点的序列, 如Γ=v0v1…v l④ 非简单图中,可用混合表示法,如Γ=v0v1e2v2e5v3v4v5环是长度为1的圈, 两条平行边构成长度为2的圈.在无向简单图中, 所有圈的长度≥3; 在有向简单图中, 所有圈的长度≥2.在两种意义下计算的圈个数① 定义意义下在无向图中, 一个长度为l(l≥3)的圈看作2l个不同的圈. 如v0v1v2v0 ,v 1v2vv1, v2v0v1v2, v0v2v1v0 , v1v0v2v1 , v2v1v0v2看作6个不同的圈. 在有向图中, 一个长度为l(l≥3)的圈看作l个不同的圈.② 同构意义下所有长度相同的圈都是同构的, 因而是1个圈.定理在n阶图G中,若从顶点v i到v j(v i≠v j)存在通路,则从v i到v j存在长度小于等于n-1的通路.推论在n阶图G中,若从顶点v i到v j(v i≠v j)存在通路,则从v i到v j存在长度小于等于n-1的初级通路.定理在一个n阶图G中,若存在v i到自身的回路,则一定存在v i到自身长度小于等于n的回路.推论在一个n阶图G中,若存在v i到自身的简单回路,则一定存在长度小于等于n的初级回路.无向图的连通性设无向图G=<V,E>,u与v连通: 若u与v之间有通路. 规定u与自身总连通.连通关系R={<u,v>| u,v∈V且u~v}是V上的等价关系连通图:任意两点都连通的图. 平凡图是连通图.连通分支: V关于连通关系R的等价类的导出子图设V/R={V1,V2,…,V k}, G[V1], G[V2], …,G[V k]是G的连通分支, 其个数记作p(G)=k.G是连通图⇔p(G)=1短程线与距离u与v之间的短程线: u与v之间长度最短的通路(u与v连通)u与v之间的距离d(u,v): u与v之间短程线的长度若u与v不连通, 规定d(u,v)=∞.性质:d(u,v)≥0, 且d(u,v)=0 ⇔u=vd(u,v)=d(v,u)d(u,v)+d(v,w)≥d(u,w)点割集与割点记G-v: 从G中删除v及关联的边G-V ': 从G中删除V '中所有的顶点及关联的边G-e : 从G中删除eG-E': 从G中删除E'中所有边定义设无向图G=<V,E>, V '⊂V, 若p(G-V ')>p(G)且∀V ''⊂V ', p(G-V '')=p(G), 则称V '为G的点割集. 若{v}为点割集, 则称v为割点.边割集与割边(桥)定义设无向图G=<V,E>, E '⊆E, 若p(G-E ')>p(G)且∀E ''⊂E ',p(G-E '')=p(G), 则称E '为G的边割集. 若{e}为边割集, 则称e为割边或桥.在上一页的图中,{e1,e2},{e1,e3,e5,e6},{e8}等是边割集,e是桥,{e7,e9,e5,e6}是边割集吗?8几点说明:K无点割集nn阶零图既无点割集,也无边割集.若G连通,E '为边割集,则p(G-E ')=2若G连通,V '为点割集,则p(G-V ')≥2有向图的连通性设有向图D=<V,E>u可达v: u到v有通路. 规定u到自身总是可达的.可达具有自反性和传递性D弱连通(连通): 基图为无向连通图D单向连通: ∀u,v∈V,u可达v或v可达uD强连通: ∀u,v∈V,u与v相互可达强连通⇒单向连通⇒弱连通定理(强连通判别法) D强连通当且仅当D中存在经过每个顶点至少一次的回路定理(单向连通判别法) D单向连通当且仅当D中存在经过每个顶点至少一次的通路有向图的短程线与距离u到v的短程线: u到v长度最短的通路 (u可达v)u与v之间的距离d<u,v>: u到v的短程线的长度若u不可达v, 规定d<u,v>=∞.性质:d<u,v>≥0, 且d<u,v>=0 ⇔u=vd<u,v>+d<v,w> ≥d<u,w>注意: 没有对称性7.3 图的矩阵表示无向图的关联矩阵定义设无向图G=<V,E>, V={v1, v2, …, v n}, E={e1, e2, …, e m},令m ij为v i 与e j的关联次数,称(m ij)n⨯m为G的关联矩阵,记为M(G).性质(1) 每一列恰好有两个1或一个2有向图的关联矩阵定义设无环有向图D=<V,E>, V={v1, v2, …, v n},E={e, e2, …, e m}, 令1性质(1) 每一列恰好有一个1和一个-1(2) 第i行1 的个数等于d+(v i), -1 的个数等于d-(v i)(3) 1的总个数等于-1的总个数, 且都等于m(4) 平行边对应的列相同有向图的邻接矩阵有向图的可达矩阵7.4 最短路径及关键路径带权图G=<V,E,w>, 其中w:E→R.∀e∈E, w(e)称作e的权. e=(v i,v j), 记w(e)=w ij . 若v i,v j不相邻, 记w ij =∞.设L是G中的一条路径, L的所有边的权之和称作L的权, 记作w(L).u和v之间的最短路径: u和v之间权最小的通路.标号法(E.W.Dijkstra, 1959)PERT图与关键路径PERT图(计划评审技术图)设有向图G=<V,E>, v∈Vv的后继元集Γ+(v)={x|x∈V∧<v,x>∈E}v的先驱元集Γ-(v)={x|x∈V∧<x,v>∈E}PERT图:满足下述条件的n阶有向带权图D=<V,E,w>,(1) D是简单图,(2) D中无回路,(3) 有一个入度为0的顶点, 称作始点; 有一个出度为0的顶点, 称作终点.通常边的权表示时间, 始点记作v1, 终点记作v n关键路径关键路径: PETR图中从始点到终点的最长路径v的最早完成时间TE(v i): 从始点v1沿最长路径到v ii所需的时间TE(v)=01TE(v)=max{TE(v j)+w ji|v j∈Γ-(v i)}, i=2,3,⋯,niv的最晚完成时间TL(v i): 在保证终点v n的最早完成i时间不增加的条件下, 从始点v1最迟到达v i的时间TL(v)=TE(v n)nTL(v)=min{TL(v j)-w ij|v j∈Γ+(v i)}, i=n-1,n-2,⋯,1iv的缓冲时间TS(v i)=TL(v i)-TE(v i), i=1,2,⋯,niv在关键路径上⇔TS(v i)=0i最晚完成时间TL(v)=128TL(v)=min{12-6}=67TL(v)=min{12-1}=116TL(v)=min{11-1}=105TL(v)=min{10-4}=64TL(v)=min{6-2,11-4,6-4}=23TL(v)=min{2-0,10-3,6-4}=22TL(v)=min{2-1,2-2,6-3}=01缓冲时间TS(v)=0-0=01TS(v)=2-1=12TS(v)=2-2=03TS(v)=6-4=24TS(v=10-8=25TS(v)=11-9=26TS(v)=6-6=07TS(v)=12-12=08关键路径: v1v3v7v8。
机械制图第七章
但同一零件的剖面线在所有视图中应同方向且同间距。 对于紧固件和实心零件(如螺钉、螺栓、螺母、垫圈、键、销、
球及轴等),若剖切平面通过其基本轴线时,则这些零件均按不剖绘制; 需要时,可采用局部剖视。
直齿圆柱齿轮名称及代号计算公式名称及代号计算公式分度囿直径ddmzmz2齿根高h125m齿根囿直径dh225m中心距a标准直齿囿柱齿轮各基本尺寸计算公式25机械制图1单个齿轮的画法单个齿轮一般用两个规图来表达且在平行于齿轮轴线的投影面上的规图可以画成规图全剖规图戒半剖规图其画法如图所示
1
机械制图
第七章 标准件和常用件的 表示法
GB/T 1096 键B 16×10×100
b = 6、h = 10、D = 25的半 圆键标记为:
GB/T 1096.1 键6×10×25
b=6、L=25的钩头楔键标 记为:
GB/T 1565 键6×25
17
2. 键联结的画法及尺寸标注
1.普通平键联结的画法
当采用普通平键时,键的长度L和宽度b 要根据轴的直径d和传递的扭矩大小,通过 计算后从标准中选取适当值。轴和轮毂上键 槽的表达方法及尺寸标注如右图所示。
右图为螺栓连接比例画法的画图过程。其中,螺栓长度L可按下式 估算:
L≥t1+t2+0.15d+0.8d+(0.2~0.3)d 根据上式的估算值,应从相应的螺栓标准(参见本书附表2-1)所 规定的长度系列中,选取最接近标准长度的值作为L值。
机械制图
a
b
c
d
螺栓连接的画图步骤
14
机械制图
2.螺纹紧固件
2.螺柱连接
第7章图(Graph)
• 1.带方向的边叫有向边(directed edge),简 称为弧; • 用顶点的有序对表示,<vi ,vj>和<vj ,vi> 是不同的 . • 2. 而不带方向的边叫无向边(undirected edge),简称为边。 • 用顶点的无序对表示,(vi ,vj)和(vj ,vi)表 示同一条边。 • • <vi,vj >表示从顶点vi到vj 的一段弧 • Vi:称为边的始点或者弧尾 • Vj:称为边的终点或者弧头
• 2e= • 例:
1 1
TD(v )
i 1 i
n
2 2
• 2*1=1+1
2*2=2+2
• (5)路径与回路:路径上边的数目称为路径长度。 • 下图所示的无向图中,顶点v1到顶点v5的路径有两条,分别 为(v1,v2,v3,v5)与(v1,v4,v5),路径长度分别为3和2。
1 2 5 3
• 如果路径的起点和终点相同 (即vp=vq),则称此路径为回路 4 或环。序列中顶点不重复出现的路径称为简单路径, 图 7.3 图的路径 • 上图所示的v1到v5的两条路径都为简单路径。除第一顶点与 最后一个顶点之外,其它顶点不重复现的回路为简单回路 或者简单环。
第7章 图(Graph)
图是一种比树更为复杂的非线性数据结构。 1.线性表: 数据元素之间仅有线性关系. (每个elem只有一个直接前驱和一个直接后继) 2.树形结构:elem之间有明显的层次关系. (每一层上的数据元素可能和下一层中多个元素相关,但 只能和上一层中一个元素(双亲)相关) 3.图形结构:结点之间的关系可以是任意的. (图中任意两个数据元素之间都可能相关联 ) 图的应用十分广泛。最典型的应用领域有电路分析、 寻找最短路线、项目规划、鉴别化合物、统计力学、遗 传学、控制论、语言学,乃至社会科学。实际上,在所 有的数据结构中,图的应用是最广泛的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、图的十字链表表示法 四、无向图的邻接多重表存储表示
一、 数组(邻接矩阵)表示法
typedef struct ArcCell{ VRType adj; // VRType是顶点关系类型。对无权图, 用1或0表示是否相邻;对带权图,则为权值类型。 InfoType *info;//该弧相关信息的指针 }ArcCell AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct{ VertexType vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; int vexnum,arcnum; GraphKind kind; }MGrap
}//if }//while }//if }//BFSTraverse
遍历应用举例
1.求一条从顶点i到顶点s的简单路径(深度搜索) viod DFSearch(int v, int s, char *PATH){ //从第v个顶点出发递归地深度优先遍历图G,求得 一条从v到s的简单路径,并将其记录在PATH中 visited[v]=TURE; //访问第v个顶点 Append(PATH,getVertex(v)); for(w=FirstAdjVex(v)); w!=0&&!found; w=NextAdjVex(v)) if(w=s){found=TRUE;Append(PATH,w);} else if(!visited[w]) DFSearch(w,LP); if(!found) Delete(PATH);
遍历
DFTraverse(G,v,Visit());//从顶点v起深 度优先遍历图G,并对每个顶点调用函 数Visit一次且仅一次。 BFRTraverse(G,v,Visit());//从顶点v起广 度优先遍历图G,并对每个顶点调用函 数Visit一次且仅一次。
7.2图的存储表示
一、数组(邻接矩阵)表示法 二、图的邻接表的存储结构
7.3 图的遍历
从图中某个顶点出发(由存储结构 决定到底从哪个顶点出发)游历图,访 遍图中其余顶点,并且使图中的每个 顶点仅被访问一次的过程。 ●深度优先搜索 ●广度优先搜索 ●遍历应用举例
深度优先搜索(是树的先根遍历的推广)
从图中某个顶点V0出发,访问此顶点, 然后依次从V0的各个未被访问的邻接点出 发深度优先搜索遍历图,直至图中所有和 V0有路径相通的顶点都被访问到,若此时 图中尚有顶点未被访问,则另选图中一个 未曾被访问的顶点作为起始点,重复上述 过程,直至图中所有顶点都被访问到为止。
第七章
图
7.1图的抽象数据类型的定义 7.2图的存储表示 7.3图的遍历 7.4最小生成树 7.5重(双)连通图和关节点 7.6两点之间的最短路径问题 7.7拓扑排序 7.8关键路径
7.1图的抽象数据类型的定义 ADT Graph{ 数据对象V:V是具有相同特性的数据元 素的集合,称为顶点集。 数据关系R: R={VR} VR={<v,w>︱v,w∈V且P(v,w), (v,w)表 示从v到w的弧,谓词P(v,w),定义了弧(v,w) 的意义或信息}
对顶点的访问操作:LocateVex(G,u);GetVex(G,v); PutVex(&G,v,value) 插入和删除弧:InsertArc(&G,v,w);DeleteArc(&G,v,w) 对邻接点的操作:FirstAdjVex(G,v);NextAdjVex(G,v,w) 遍历:DFTraverse(G,v,Visit());BFRTraverse(G,v,Visit());
插入或删除顶点
InsertVex(&G,v);//在图中增添新顶点v. DeleteVex (&G,v);//删除G中顶点v及其 相关的弧。
插入和删除弧
InsertArc(&G,v,w);//在G中增添弧<v,w>, 若G是无向的,则需要增添对称弧<w, v >。 DeleteArc(&G,v,w);//在G中删除弧 <v,w>,若G是无向的,则还需要删除 对称弧<w, v >。
四、无向图的邻接多重表存储表示
typedef struct Ebox{ VisitIf mark; //访问标记 int ivex,jvex; //该边依附的两个顶点的位置 struct EBox *ilink,*jlink; InfoType *info; //该边信息指针 }EBox typedef struct VexBox{ VertexType data; EBox *firstedge; //指向第一条依附该顶点的边 }VexBox; typedef struct { VexBox adlmulist[MAX_VERTEX_NUM]; int vexnum,edgenum; }AMLGraph
第五组:邻接点、度、入度、出度
若顶点v和w之间存在一条边,则称顶点v 和w互为邻接点,边(v,w)和顶点v和w相关 联。和顶点v关联的边的数目定义为边的度。 对有向图来说,以顶点v为弧尾的弧的数 目定义为顶点v的出度;以顶点v为弧头的 弧的数目定义为顶点v的入度。 度(TD)=出度(OD)+入度(ID)
第八组
生成树、生成森林
若一个连通图有n个顶点和e条边, 其中n-1条边和n个顶点构成一个极 小连通子图,称该极小连通子图为 连通图的生成树。 对非连通图,则称由各个连通分 量的生成树的集合为此非连通图的 生成森林。
基本操作P
结构的建立和销毁 CreateGraph(&G,V,VR);DestroyGraph(&G) 插入或删除顶点:InsertVex(&G,v);DeleteVex (&G,v);
例:
B C
A
B
2 ∧ 1 4 3 2 ∧ 2 3 4 ∧ 5 6∧ 6 ∧ 6 ∧
A D
C
D
F E
E F
vexnum=6 edgenum=6
邻接表和逆连接表
三、图的十字链表表示法
typedef struct AcrBox{ int tailvex,headvex;//该弧的尾和头顶点的位置 struct ArcBox *hlink,*tlink;//分别指向下一个弧头和 弧尾相同弧的指针域 InfoType *Info; //该弧相关信息的指针 }ArcBox; typedef struct VexNode{ VertexType data; ArcBox *firstin,*firstout; } AcrNode; typedef struct{ VexNode xlist[MAX_VERTEX_NUM]; int vexnum,arcnum; //有向图的当前顶点数和弧数 }OLGraph
检查下一邻接点是否被访问过,需要设顶点的访问标记。
f a b c
g b e d c
a f d g e
深度优先生成树 深度优先遍历:abcdefg
viod DFSTraverse(Graph G,Status(*Visit)(int v)){ 对图 G进行深度优先遍历 VisitFunc=Visit; for(v=0;v<G.vexnum;++v); visited[v]=FALSE; //访问标志数组初始化 for(v=0;v<G.vexnum;++v) if(!visited[v]) DFS(G,v);//对尚未访问的顶点调用DFS} viod DFS(Graph G,int v){ visited[v]=TRUE; VisitFunc(v); for(w=FirstAdjVex(G,v);w!=0; w=NextAdjVex(G,v,w)) if(!visited[w]) DFS(G,w); //对v的尚未访问的邻接顶 点w递归调用DFS }
a c d f
b b e g
a c
d
e
f
g
广度优先生成树 深度优先遍历:abcdfge
viod BFSTraverse(Graph G,Status(*Visit)(int v)){ for(v=0;v<G.vexnum;++v) visited[v]=FALSE; InitQueue(Q); //置空的辅助队列Q for(v=0;v<G.vexnum;++v) if(!visited[v]){ //v尚未访问 visited[v]=TURE; Visit(v); EnQueue(Q,v); //v入队列 while(!QueueEmpty(Q)){ DeQueue(Q,u); //队头元素出队并置为u //访问u for(w=FirstAdjVex(G,u);w!=0;w=NextAdjVex(G,u,w)) if(!visited[w]){EnQueue(Q,w); visited[w]=TURE;Visit(w); EnQueue(Q,w);
A F
B
E
C
Байду номын сангаас
D
第三组:网、子图
弧或边带权的图分别成为有向网或无 向网。 设图G=(V,{VR})和图G’=(V’,{VR’}), 且V’是V的子集, VR’是VR的子集, 则称G’为G的子图。
第四组 完全图、稀疏图、稠密图 假设图中有n个顶点、e条边,则 含有e=n(n-1)/2条边的无向图称 作完全图; 含有e=n(n-1)条弧的有向图称作 有向完全图; 若边或弧的个数e<n㏒n,则称为 稀疏图,否则称作稠密图。
第六组 路径、路径长度、简单路径、简单 回路 设图G=(V,{VR})中的一个顶点序列 {u=vi,o,vi,1,…,vi,m=w},其中,(vi,j-1,vi,j∈VR且 1≤j≤m),则称从顶点u到顶点w之间存在一条 路径,路径上边的数目称作路径长度。 若序列中的顶点不重复出现,则称作简单 路径; 若u=w,则称这条路径为回路或者简单回 路。