第八篇 章 图 清华大学-数据结构 课件 ppt.ppt

第八篇 章 图 清华大学-数据结构 课件 ppt.ppt

  1. 1、本文档共132页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八篇 章 图 清华大学-数据结构 课件 ppt.ppt

图的基本概念 图的存储表示 图的遍历与连通性 最小生成树 最短路径 活动网络 ;图的基本概念; ;权 某些图的边具有与它相关的数, 称之为权。这种带权图叫做网络。 子图 设有两个图 G=(V, E) 和 G‘=(V’, E‘)。若 V’? V 且 E‘?E, 则称 图G’ 是 图G 的子图。 顶点的度 一个顶点v的度是与它相关联的边的条数。记作TD(v)。在有向图中, 顶点的度等于该顶点的入度与出度之和。;顶点 v 的入度是以 v 为终点的有向边的条数, 记作 ID(v); 顶点 v 的出度是以 v 为始点的有向边的条数, 记作 OD(v)。 路径 在图 G=(V, E) 中, 若从顶点 vi 出发, 沿一些边经过一些顶点 vp1, vp2, …, vpm,到达顶点vj。则称顶点序列 ( vi vp1 vp2 ... vpm vj ) 为从顶点vi 到顶点 vj 的路径。它经过的边(vi, vp1)、(vp1, vp2)、...、(vpm, vj)应是属于E的边。 路径长度 非带权图的路径长度是指此路径上边的条数。 带权图的路径长度是指路径上各边的权之和。;图的抽象数据类型 class Graph { public: Graph ( ); void InsertVertex ( const Type vertex ); void InsertEdge ( const int v1, const int v2, int weight ); void RemoveVertex ( const int v ); void RemoveEdge ( const int v1, const int v2 ); int IsEmpty ( ); Type GetWeight ( const int v1, const int v2 ); int GetFirstNeighbor ( const int v ); int GetNextNeighbor ( const int v1, const int v2 ); };图的存储表示;在有向图中, 统计第 i 行 1 的个数可得顶点 i 的出度,统计第 j 行 1 的个数可得顶点 j 的入度。 在无向图中, 统计第 i 行 (列) 1 的个数可得顶点i 的度。;网络的邻接矩阵;用邻接矩阵表示的图的类的定义 const int MaxEdges = 50; const int MaxVertices = 10; template class NameType, class DistType class Graph { private: SeqListNameType VerticesList (MaxVertices); DistType Edge[MaxVertices][MaxVertices]; int CurrentEdges; int FindVertex ( SeqListNameType L; const NameType vertex ) { return L.Find (vertex); }; int GetVertexPos ( Const NameType vertex ) { return FindVertex (VerticesList, vertex ); } public: Graph ( const int sz=MaxNumEdges ); int GraphEmpty ( ) const { return VerticesList.IsEmpty ( ); } int GraphFull( ) const { return VerticesList.IsFull( ) || CurrentEdges ==MaxEdges; } int NumberOfVertices ( ) { return VerticesList.last; } int NumberOfEdges ( ) { return CurrentEdges; }; NameType GetValue ( const int i ) { return i = 0 i VerticesList.last ? VerticesList.data[i] : NUL

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档