第7章数饿据结构图.ppt

第7章数饿据结构图

第7章 图 七桥问题的数学模型 图的应用历史 东普鲁士的七桥问题 要求从某一地出发,经过每座桥恰巧一次,最后仍回到原地。 1736年欧拉将陆地作顶点,将桥作边,从而将这个实际问题抽象成图的模型。 “一笔划问题”:当两个顶点的度为偶数,其余顶点的度为奇数时,可以从一个偶数顶点出发,经过每条边一次,最后到达另一偶数顶点。 “欧拉回路问题”:只有所有的顶点的度都是偶数,才能从一个顶点出发,经过每条边一次,最后回这个顶点。 欧拉证明七桥问题无解。 清华大学2001 本章目录 7.1 图的定义和术语 7.2 图的存储结构 7.2.1 数组表示法 7.2.2 邻接表 ( *7.2.3 十字链表 *7.2.4 邻接多重表 ) 7.3 图的遍历 7.3.1 深度优先搜索 7.3.2 广度优先搜索 7.4 图的连通性问题 7.4.1 图的连通分量和生成树 7.4.2 最小生成树 7.5 有向无环图及其应用 7.5.1 拓扑排序 *7.5.2 关键路径 7.6 最短路径 (*7.7 算法设计举例) 7.6.1 从某个源点到其它各顶点的最短路径 7.6.2 每一对顶点之间的最短路径 主要内容 知识点 1.图的定义,概念、术语及基本操作。 2.图的存储结构,特别是邻接矩阵和邻接表。 3.图的深度优先遍历和宽度优先遍历。 4.图的应用(连通分量,最小生成树,拓扑排序,关键路经,最短路经)。 重点难点 1.基本概念中,完全图、连通分量、生成树和邻接点是重点。 2.建立图的各种存储结构的算法。 3.图的遍历算法及其应用。 4.通过遍历求出连通分量的个数,深(宽)度优先生成树。 5.最小生成树的生成过程。 6.拓扑排序的求法。关键路经的求法。 7.最短路径的手工模拟。 图的示例(有向图与无向图) 有向完全图:n个顶点的有向图最大边数是n(n-1) 无向完全图:n个顶点的无向图最大边数是n(n-1)/2 邻接点:若(vi,vj)是一条无向边,则称vi和vj互为~ 关联:vi和vj互为邻接点,称边(vi,vj)关联于顶点vi和vj 顶点的度 无向图中,顶点的度为与每个顶点相连的边数,记为D(v) 有向图中,顶点的度分成入度与出度,其中入度是以该顶点为头的弧的数目,记为ID(v)。出度是以该顶点为尾的弧的数目,记为OD(v)。顶点的度为入度和出度的和,即D(v)=ID(v)+OD(v)。 子图——如果图G(V,E)和图G’(V’,E’),满足:V’?V,E’?E 则称G’为G的子图 图的概念(7) 一个连通图的生成树是一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边。 一棵有n个顶点的生成树有且仅有n-1条边。 树或自由树或无根树 无回路的图称为树或自由树或无根树 图的概念(8) 有向树:只有一个顶点的入度为0,其余顶点的入度为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的意义或信息} 基本操作P: GraphCreat(G,,V,VR); GraphDestory(G); GraphLocateVertex(G,v); GraphGetVertex(G,v); GraphFirstAdj(G,v); GraphNextAdj(G,v,w); GraphInsertVertex(G,v); GraphDeleteVertex(G,v); GraphInsertArc(G,v,w); GraphDeleteArc(G,v,w); DFSTtraverse(G,v,Visit()); BFSTtraverse(G,v,Visit()); }ADT Graph 图的主要操作 GraphLocateVertex(G,v); GraphGetVertex(G,v);

文档评论(0)

1亿VIP精品文档

相关文档