数据结构 Java语言版 王学军 第八章新.pptVIP

  • 12
  • 0
  • 约4.16万字
  • 约 131页
  • 2015-12-24 发布于广东
  • 举报

数据结构 Java语言版 王学军 第八章新.ppt

数据结构(Java语言版) 人民邮电出版社 第八阶段 8.图 【知识要点】 图的基本概念; 图的存储结构; 图的遍历; 生成树和最小生成树; 构造最小生成树的典型算法; 最短路径及其算法; 拓扑排序及其算法; AOE网和关键路径。 第八阶段 第八阶段 第八阶段 从图中可以看出,五个城市之间都有互相连通的道路,形成了一个多对多的关系,也称为图形关系,或者网状关系。 第八阶段 8.2 图的基本概念 8.2.1 图的定义 图(Graph)是一种网状数据结构,图是由结点(Vertices)集合V和边(Edges)集合E组成的。图中的结点又称为顶点。结点之间的关系称为边。图G的二元组定义如下: G=(V,E) 其中,V是结点的有限非空集合,E是边的有限集合。即: V={u|u∈构成图的数据元素集合} E={(u,v)|u,v∈V}或E={u,v| u,v∈V} 其中,(u,v)表示结点u与结点v的一条无序偶,即(u,v)没有方向;而u,v表示从结点u到结点v的一条有序偶,即u,v是有方向的。 第八阶段 通常,图G的结点集合和边集合分别记为V(G)和E(G)。 E(G)可以是空集,此时图G只有结点没有边。 图的抽象数据类型定义如下: ADT Graph{ 数据对象V: V={vi|0≤i≤n-1,n≥0,vi∈某种数据结构} 数据关系E: E={(u,v)|u,v∈V}或E={u,v| u,v∈V}; 基本操作: getType() //返回当前图的类型 getVexNum() //返回图中结点数 getEdgeNum() //返回图中边数 getVertex() //返回图中所有结点的迭代器 第八阶段 getEdge() //返回图中所有边的迭代器 remove(v) //在图中删除特定的结点v insert(e) //在图的边集中添加一条新边 … adjVertexs(u) //返回结点u的所有邻接点 DFSTraverse(v) //从结点v开始深度优先搜索遍历图 BFSTraverse(v) //从结点v开始广度优先搜索遍历图 shortestPath(v) //求结点v到图中所有结点的最短路径 generateMST() //求无向图的最小生成树有向图不支持此操作 toplogicalSort() //求有向图的拓扑序列 }ADT Graph 对应于上述抽象数据类型,下面给出图的Java接口: public interface Graph { 第八阶段 通常,图G的结点集合和边集合分别记为V(G)和E(G)。E(G)可以是空集,此时图G只有结点没有边。 图的抽象数据类型定义如下: ADT Graph{ 数据对象V: V={vi|0≤i≤n-1,n≥0,vi∈某种数据结构} 数据关系E: E={(u,v)|u,v∈V}或E={u,v| u,v∈V}; 基本操作: getType() //返回当前图的类型 getVexNum() //返回图中结点数 getEdgeNum() //返回图中边数 第八阶段 getVertex() //返回图中所有结点的迭代器 getEdge() //返回图中所有边的迭代器 remove(v) //在图中删除特定的结点v insert(e) //在图的边集中添加一条新边 … adjVertexs(u) //返回结点u的所有邻接点 DFSTraverse(v) //从结点v开始深度优先搜索遍历图 BFSTraverse(v) //从结点v开始广度优先搜索遍历图 shortestPath(v) //求结点v到图中所有结点的最短路径 generateMST() //求无向图的最小生成树有向图不支持此操作 toplogicalSort() //求有向图的拓扑序列 }ADT Graph 第八阶段 对应于上述抽象数据类型,下面给出图的Java接口: public interface Graph { public static final int UndirectedGraph = 0; //无向图 public static final int DirectedGraph = 1; //有向图 public int getType(); //返回图的类型 public int getVexNum(); //返回图的顶点数 public int getEdgeNum(); //返回图的边数 public Iterator getVertex(

文档评论(0)

1亿VIP精品文档

相关文档