免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章 图第七章 图离散数学中的图论是专门研究图性质的一个数学分支,但图论注重研究图的纯数学性质,而数据结构中对图的讨论则侧重于在计算机中如何表示图以及如何实现图的操作和应用等。图是较线性表和树更为复杂的数据结构,因此和线性表、树不同,虽然在遍历图的同时可以对顶点或弧进行各种操作,但更多图的应用问题如求最小生成树和最短路径等在图论的研究中都早已有了特定算法,在本章中主要是介绍它们在计算机中的具体实现。这些算法乍一看都比较难,应多对照具体图例的存储结构进行学习。而图遍历的两种搜索路径和树遍历的两种搜索路径极为相似,应将两者的算法对照学习以便提高学习的效益。 第一节 图的类型定义图由一个顶点集和弧集构成,通常写作:Graph=(V,VR)V是具有相同特性的数据元素的集合,称为顶点集。VR| v,wV,表示从v到w的弧表示从顶点 v 到顶点 w 的一条弧,其中顶点 v 被称为弧尾,顶点 w 被称作弧头。由于弧是有方向的,故称有向图。(有向图G1)例如下列定义的有向图如上图所示。G1=(V1, VR1)其中:V1 = A, B, C, D, EVR1 =,若R 必有R,则称 (v,w) 为顶点 v 和顶点 w 之间存在一条边。由顶点集和边集构成的图称作无向图。(无向图G2)例如下列定义的无向图如上所示。G2=(V2, VR2)其中:V2=A, B, C, D, E, FVR2=(A,B),(A,E),(B,E),(C,D),(D,F),(B,F),(C,F) 由于空的图在实际应用中没有意义,因此一般不讨论空的图,即V是顶点的有穷非空集合。图的抽象数据类型定义如下:ADT Graph 数据对象:V是具有相同特性的数据元素的集合,称为顶点集。数据关系:VR| v,wV且P(v,w),表示从v到w的弧,谓词P(v,w)定义了弧的意义或信息 基本操作P:结构初始化CreateGraph(&G, V, VR);初始条件:V 是图的顶点集,VR 是图中弧的集合。操作结果:按 V 和 VR 的定义构造图 G。销毁结构DestroyGraph(&G);初始条件:图 G 存在。操作结果:销毁图 G。 引用型操作LocateVex(G, u);初始条件:图 G 存在,u 和 G 中顶点有相同特征。操作结果:若 G 中存在和 u 相同的顶点,则返回该顶点在图中位置;否则返回其它信息。顶点在图中的位置指的是,在图的存储结构中顶点之间自然形成的相对位置。GetVex(G, v);初始条件:图 G 存在,v 是 G 中某个顶点。操作结果:返回 v 的值。 FirstAdjVex(G, v);初始条件:图 G 存在,v 是 G 中某个顶点。操作结果:返回 v 的第一个邻接点。若该顶点在 G 中没有邻接点,则返回空。若G,则称 w 为 v 的邻接点,若(v,w)G,则称 w 和 v 互为邻接点。NextAdjVex(G, v, w);初始条件:图 G 存在,v 是 G 中某个顶点,w 是 v 的邻接顶点。操作结果:返回 v 的(相对于 w 的)下一个邻接点。若 w 是 v 的最后一个邻接点,则返回空。若 v 有多个邻接点,则在图的存储结构建立之后,其邻接点之间的相对次序也就自然形成了。 加工型操作PutVex(&G, v, value);初始条件:图 G 存在,v 是 G 中某个顶点。操作结果:对 v 赋值 value。InsertVex(&G, v);初始条件:图 G 存在,v 和图中顶点有相同特征。操作结果:在图 G 中增添新顶点 v。DeleteVex(&G, v);初始条件:图 G 存在,v 是 G 中某个顶点。操作结果:删除 G 中顶点 v 及其相关的弧。InsertArc(&G, v, w);初始条件:图 G 存在,v 和 w 是 G 中两个顶点。操作结果:在 G 中增添弧,若 G 是无向的,则还增添对称弧。DeleteArc(&G, v, w);初始条件:图 G 存在,v 和 w 是 G 中两个顶点。操作结果:在 G 中删除弧,若 G 是无向的,则还删除对称弧。DFSTraverse(G, Visit();初始条件:图 G 存在,Visit 是顶点的应用函数。操作结果:对图 G 进行深度优先遍历。遍历过程中对每个顶点调用函数Visit 一次且仅一次。一旦 visit() 失败,则操作失败。BFSTraverse(G, Visit();初始条件:图 G 存在,Visit 是顶点的应用函数。操作结果:对图 G 进行广度优先遍历。遍历过程中对每个顶点调用函数Visit 一次且仅一次。一旦 visit() 失败,则操作失败。 ADT Graph介绍几个有关图的常用术语。顶点的度对无向图而言,邻接点的个数定义为顶点的度。例如(无向图G2)中顶点B的度为3,顶点C的度为2。对有向图而言,顶点的度为其出度和入度之和,其中出度定义为以该顶点为弧尾的弧的个数,入度定义为以该顶点为弧头的弧的个数。例如(有向图G1)中顶点D的度为3,其中出度为2,入度为1,顶点B的度为3,其中出度为1,入度为2。子图假设有两个图 G=(V,E) 和 G=(V,E),如果VV 且 EE,则称 G为G的子图(subgraph)。例如,(有向图G1) 的子图的一些例子。路径和回路若有向图 G 中 k+1 个顶点之间都有弧存在(即,,是图 G 中的弧),则这个顶点的序列 , 为从顶点到顶点的一条有向路径,路径中弧的数目定义为路径长度,若序列中的顶点都不相同,则为简单路径。对无向图,相邻顶点之间存在边的 k+1 个顶点序列构成一条长度为 k 的无向路径。如果和是同一个顶点,则是一条由某个顶点出发又回到自身的路径,称这种路径为回路或环。例如(有向图G1)中顶点序列 A,E,C,D 是一条路径长度为3的简单路径,顶点序列 A,B,C,D,A 是一条长度为4的简单回路。(无向图G2)中顶点序列 A,B,F,C,D 是一条长度为4的无向路径。连通图和连通分量、强连通图和强连通分量若无向图中任意两个顶点之间都存在一条无向路径,则称该无向图为连通图,否则称为非连通图。若有向图中任意两个顶点之间都存在一条有向路径,则称该有向图为强连通图。例如(无向图G2)和(有向图G1)分别为连通图和强连通图。非连通图中各个极大连通子图称作该图的连通分量。如下图为由两个连通分量构成的非连通图。非强连通的有向图中的极大强连通子图称作有向图的强连通分量。例如下图中的有向图含有三个强连通分量。生成树和生成森林一个含 n 个顶点的连通图的生成树是该图中的一个极小连通子图,它包含图中 n 个顶点和足以构成一棵树的 n-1 条边。如下图所示。若在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 病种临床路径的成本控制与医疗价值实现
- 《中国特色社会主义道路》创新单元复习课件
- 新苏教版数学二年级下册第三单元《认识方向》测试卷(含答案)
- 远程指导下狗狗骨盆骨折家庭护理要点
- 老年人腰疼护理安全须知与辅助器具
- 儿童睡眠障碍护理与改善课件
- 肿瘤患者化疗恶心呕吐防治护理查房
- 成本管控与医疗质量协同
- 新生儿抚触实操:促进发育、增进亲子关系技巧
- 2025年-2026年钢轨探伤工(高级)技能理论考试参考题库【附答案】
- 辽宁葫芦岛历年中考语文现代文阅读真题11篇(含答案)(2003-2023)
- 人教版一年级上册《劳动教育》-全册课件
- 2022-2023年度广东省养老照护(中职组)竞赛规程
- 2024年中国老年糖尿病诊疗指南解读(2024年版)
- 2024年上海市中考语文备考之现代文阅读作家明前茶及梁晓声相关阅读训练
- 产品推广效果分析方案
- 浅谈质谱的检测器:电子倍增器(CEM)
- 生物多样性与气候变化课件
- ABC自闭症行为检查量表标准版
- 2023年苏教版四年级数学下册全册教学反思
- 五年级小数带方程综合练习(宁波实验学校)
评论
0/150
提交评论