离散数学中的图论是专门研究图性质的一个数学分支.doc

上传人:大米 文档编号:544202166 上传时间:2024-02-15 格式:DOC 页数:5 大小:83KB
返回 下载 相关 举报
离散数学中的图论是专门研究图性质的一个数学分支.doc_第1页
第1页 / 共5页
离散数学中的图论是专门研究图性质的一个数学分支.doc_第2页
第2页 / 共5页
离散数学中的图论是专门研究图性质的一个数学分支.doc_第3页
第3页 / 共5页
离散数学中的图论是专门研究图性质的一个数学分支.doc_第4页
第4页 / 共5页
离散数学中的图论是专门研究图性质的一个数学分支.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《离散数学中的图论是专门研究图性质的一个数学分支.doc》由会员分享,可在线阅读,更多相关《离散数学中的图论是专门研究图性质的一个数学分支.doc(5页珍藏版)》请在金锄头文库上搜索。

1、第七章 图第七章 图离散数学中的图论是专门研究图性质的一个数学分支,但图论注重研究图的纯数学性质,而数据结构中对图的讨论则侧重于在计算机中如何表示图以及如何实现图的操作和应用等。图是较线性表和树更为复杂的数据结构,因此和线性表、树不同,虽然在遍历图的同时可以对顶点或弧进行各种操作,但更多图的应用问题如求最小生成树和最短路径等在图论的研究中都早已有了特定算法,在本章中主要是介绍它们在计算机中的具体实现。这些算法乍一看都比较难,应多对照具体图例的存储结构进行学习。而图遍历的两种搜索路径和树遍历的两种搜索路径极为相似,应将两者的算法对照学习以便提高学习的效益。 第一节 图的类型定义图由一个顶点集和弧

2、集构成,通常写作: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),

3、(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 存在。操作结果:销毁图

4、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 互为邻接点。N

5、extAdjVex(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);初始条件:图

6、 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 一次且仅一次。一旦 vi

7、sit() 失败,则操作失败。BFSTraverse(G, Visit();初始条件:图 G 存在,Visit 是顶点的应用函数。操作结果:对图 G 进行广度优先遍历。遍历过程中对每个顶点调用函数Visit 一次且仅一次。一旦 visit() 失败,则操作失败。 ADT Graph介绍几个有关图的常用术语。顶点的度对无向图而言,邻接点的个数定义为顶点的度。例如(无向图G2)中顶点B的度为3,顶点C的度为2。对有向图而言,顶点的度为其出度和入度之和,其中出度定义为以该顶点为弧尾的弧的个数,入度定义为以该顶点为弧头的弧的个数。例如(有向图G1)中顶点D的度为3,其中出度为2,入度为1,顶点B的度为

8、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 是一

9、条路径长度为3的简单路径,顶点序列 A,B,C,D,A 是一条长度为4的简单回路。(无向图G2)中顶点序列 A,B,F,C,D 是一条长度为4的无向路径。连通图和连通分量、强连通图和强连通分量若无向图中任意两个顶点之间都存在一条无向路径,则称该无向图为连通图,否则称为非连通图。若有向图中任意两个顶点之间都存在一条有向路径,则称该有向图为强连通图。例如(无向图G2)和(有向图G1)分别为连通图和强连通图。非连通图中各个极大连通子图称作该图的连通分量。如下图为由两个连通分量构成的非连通图。非强连通的有向图中的极大强连通子图称作有向图的强连通分量。例如下图中的有向图含有三个强连通分量。生成树和生成森林一个含 n 个顶点的连通图的生成树是该图中的一个极小连通子图,它包含图中 n 个顶点和足以构成一棵树的 n-1 条边。如下图所示。若在无向图 G2 中删除边 (B,F),则成为一个非连通图,对于非连通图,对其每个连通分量可以构造一棵生成树,合成起来就是一个生成森林。如下图所示。无向网和有向网在实际应用中,图的弧或边往往与具有一定意义的数相关,称这些数为权,分别称带权的有向图和无向图为有向网和无向网。1第一节 图的类型定义

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号