江大4数据结构1.pptxVIP

  • 1
  • 0
  • 约1.67千字
  • 约 139页
  • 2022-04-03 发布于北京
  • 举报
第七章 图; 图; 图   图G=(V,{VR}),其中V为顶点的非空有限集合,VR 为顶点间关系的集合。; 无向图和有向图; 网; 无向图中顶点的度;      弧v,w与顶点v和顶点w相关联。;点的入度,记作ID(v),;  若图G有n个顶点,e条边/弧,则:        。; 无向完全图;=k(k+1)/2; 有向完全图; 无向图中两顶点间路径、简单路径、回路和简单回路;               没有重复顶点的路径称简 单路径。; 有向图中两顶点间路径、简单路径、回路和简单回路;               没有重复顶点的路径称简 单路径。;  设图G=(V,{VR}),若有图G=(V,{VR}),满足: V V,VR  VR,则称G为G的子图。;                     否则称非连 通图。;b;  连通图的生成树是其极小连通子图,含图中全部顶点, 但只有足以构成一棵树的n-1条边。;  有向图中,若任意两个顶点间都相互有路径可通,则称 强连通图。;  有向图的极大强连通子图称其强连通分量。;ADT Graph{;  基本操作:;GetVex(G,v) 操作结果:返回图G中顶点v的值;NextAdjVex(G,v,w) 操作结果:返回图G中顶点v的相对于其邻接点w的下一个邻接      点,若无则返回空;InsertVex(G,v) 操作结果:在图G中添加新顶点v;InsertArc(G,v,w) 操作结果:在图G中添加弧 v,w,若G为无向图,则同时      添加弧w,v;DFSTraverse(G,visit) 操作结果:依深度优先遍历次序对图G的每个数据元素调用      函数visit,一旦visit失败,则操作失败; 图的深度优先遍历;b;BFSTraverse(G,visit) 操作结果:依广度优先遍历次序对图G的每个数据元素调用      函数visit,一旦visit失败,则操作失败 }//ADT Graph;⑴访问顶点v;;  这些顶点集分别加上遍历时 走过的边,构成各连通分量的广 度优先生成树。;三、存储结构设计;  用一段连续的空间依次保存n个顶点的信息,用矩阵 (Aij)n×n保存顶点间的邻接关系。;a;a;typedef struct{;  用一段连续的空间依次保存n个顶点的信息,为每个顶 点建一单链表,保存该顶点与其它顶点的邻接关系。;G.vexnum;G.vexnum;【例】;2、邻接表和逆邻接表; ElemType data; //顶点信息; VNode vexs[MAXVN];;  用一段连续的空间依次保存n个顶点的信息,每个顶点;a;3、十字链表; ElemType data;; VNode vexs[MAXVN];;4、邻接多重表;G.vexnum;4、邻接多重表; ElemType data;; VNode vexs[MAXVN];;四、图的遍历算法;定义:DFSTraverse(G,visit()) 操作结果:依深度优先遍历次序对图G的每个数据元素调用      函数visit,一旦visit失败,则操作失败;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Boolean visited[MAXVN];; return OK;;2、广度优先遍历算法;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;a;Boolean visited[MAXVN];;      visited[w]=TRUE;;      EnQueue(Q,w);      }//if-!visited[w]     }//for-所有邻接点    }//while-!QueueEmpty(Q)   }//if -!visited[v]  }//for-所有顶点  return OK; }//BFST

文档评论(0)

1亿VIP精品文档

相关文档