- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实例教程(C语言版) 第7章图的结构分析与应用 学习目标 了解图的定义及基本术语。 熟练掌握图的邻接矩阵和邻接链表存储方法。 熟练掌握图的深度优先和广度优先遍历。 熟练掌握最小生成树实现方法:普里姆算法(Prim)和克 鲁斯卡尔(Kruskal)算法。 掌握求单源最短路径的迪杰斯特拉(Dijkstra)算法,了解 求每对顶点间最短路径的弗洛伊德(Floyd)算法。 7.1图的概念及相关术语 一、图的概念 1、图的定义:记为G=(V,E),其中V是顶点的有穷非空集 合,E是边的有穷集合。 2、无向图的定义:每条边都是没有方向的图。 3、有向图的定义:每条边都是有方向的图。 7.1图的概念及相关术语 二、图的相关术语 1、无向完全图的定义 :无向图中任意两个顶点之间均有边 相连接 。n个顶点的无向完全图中有n(n-1)/2条边。 2、有向完全图的定义:有向图中任意两个顶点之间均有方 向互为相反两条边相连接 。有向完全图中有n(n-1)条边。 3、无向图中度的定义:与该顶点相关联的边的数目 。 4、有向图中度的定义:出度是以该顶点为始点的边的数目, 入度是以该顶点为终点的边的数目。 顶点1的度为2 顶点1的出度为2 顶点1的入度为1 7.1图的概念及相关术语 二、图的相关术语 4、子图的定义 :若图G=(V,E),G’=(V’,E’),若V’是 V的子集,E’是E的子集,则称图G’是G的一个子图。 子图 子图 7.1图的概念及相关术语 二、图的相关术语 5、路径、简单路径和回路 路径的定义:在无向图中,若顶点Vp到顶点Vq存在一个顶 点序列Vp,V1,V2,…,Vi,Vq,使得Vp和顶点Vq相通。 路径1、3、2、4 简单路径的定义:若Vp到Vq存在一条路径,除了Vp和Vq可 以相同外,其余顶点均不相同,此路径为一条简单路径。 简单路径 简单回路或简单环的定义:起点与终点相同的简单路径。 简单环 7.1图的概念及相关术语 二、图的相关术语 6、连通、连通图、连通分量 连通的定义:若从一个顶点到另一个顶点互有路径。 连通图的定义:无向图中任意两顶点连通。 连通分量的定义:无向图的极大连通子图。 顶点1和4连通 顶点2和6非连通 此图为非连通图 连通分量 注:连通图的连通分量就是本身。 7.1图的概念及相关术语 二、图的相关术语 7、强连通图和强连通分量 强连通图的定义:在有向图中任意两个的顶点都连通 。 强连通分量的定义:有向图的极大连通子图。 顶点2和1非连通 顶点2和3非连通 此图为非强连通图 强连通分量 注:强连通图的强连通分量就是本身。 7.2图的存储结构 一、邻接矩阵表示法 1、邻接矩阵是表示顶点之间相邻关系的矩阵(二维数组)。 邻接矩阵 邻接矩阵 V0 V1 V2 V3 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 对称矩阵 7.2图的存储结构 一、邻接矩阵表示法 2、顶点存储:需要一个一维数组来完成。 3、图的类型定义 typedef struct { char vexs[Num];// vexs用于存放顶点信息 int edges[Num][Num];//邻接矩阵,edges存储边信息 int n,e;//分别代表图的顶点数和边数 }MGraph;//结构体类型 无向图的邻接矩阵建立算法源程序链接 7.2图的存储结构 二、邻接表表示法 1、邻接表表示法类似与树的孩子链表表示法。 2、邻接表的结点结构和数组的结点结构。 adjvex next vertex link 邻接表的结点结构 数组的结点结构 邻接表 无向图的邻接表建立算法源程序链接 7.3图的遍历 一、深度优先遍历 1、实例描述:选择从淮安出发,然后青岛、烟台、大连、西安、开封、上海、苏州和扬州旅游路线,每一条路线尽量延伸到所有城市。 ②首先将出发点V标记为已访问过,然后依次从V出发搜索 V的某个邻接点W,若W未曾访问过,则以W为新的出发 点继续进行深度优先遍历,直至图中所有和源点V有路径 相通的顶点均被访问为止。 7.3图的遍历 一、深度优先遍
文档评论(0)