1、 数据结构教程 第二十六课 图的定义与术语数据结构教程 第二十六课 图的定义与术语教学目的: 掌握图的定义及常用术语教学重点: 图的常用术语教学难点: 图的常用术语授课内容:一、图的定义图是一种数据元素间为多对多关系的数据结构,加上一组基本操作构成的抽象数据类型。ADT Graph数据对象 V :V 是具有相同特性的数据元素的集合,称为顶点集。数据关系 R:R=VRVR=|v,w(-V 且 P(v,w),表示从 v 到 w 的弧,谓词 P(v,w)定义了弧的意义或信息基本操作 P:CreateGraph(初始条件:V 是图的顶点集,VR 是图中弧的集合。操作结果:按 V 和 VR 的定义构造图
2、 GDestroyGraph(初始条件:图 G 存在操作结果:销毁图 GLocateVex(G,u);初始条件:图 G 存在,u 一 G 中顶点有相同特征操作结果:若 G 中存在顶点 u, 则返回该顶点在图中位置;否则返回其它信息。GetVex(G,v);初始条件:图 G 存在,v 是 G 中某个顶点操作结果:返回 v 的值。PutVex(初始条件:图 G 存在,v 是 G 中某个顶点操作结果:对 v 赋值 valueFirstAdjVex(G,v);初始条件:图 G 存在,v 是 G 中某个顶点操作结果:返回 v 的第一个邻接顶点。若顶点在 G 中没有邻接顶点,则返回“空”NextAdjVe
3、x(G,v,w);初始条件:图 G 存在,v 是 G 中某个顶点,w 是 v 的邻接顶点。操作结果:返回 v 的(相对于 w 的)下一个邻接顶点。若 w 是 v 的最后一个邻接点,则返回“空”InsertVex(初始条件:图 G 存在,v 和图中顶点有相同特征操作结果:在图 G 中增添新顶点 vDeleteVex(初始条件:图 G 存在,v 是 G 中某个顶点操作结果:删除 G 中顶点 v 及其相关的弧InsertAcr(初始条件:图 G 存在,v 和 w 是 G 中两个顶点操作结果:在 G 中增添弧,若 G 是无向的,则还增添对称弧DeleteArc(初始条件:图 G 存在,v 和 w 是
4、G 中两个顶点操作结果:在 G 中删除弧,若 G 是无向的,则还删除对称弧DFSTraverser(G,v,Visit();初始条件:图 G 存在,v 是 G 中某个顶点,Visit 是顶点的应用函数操作结果:从顶点 v 起深度优先遍历图 G,并对每个顶点调用函数 Visit 一次。一旦 Visit()失败,则操作失败。BFSTRaverse(G,v,Visit();初始条件:图 G 存在,v 是 G 中某个顶点,Visit 是顶点的应用函数操作结果:从顶点 v 起广度优先遍历图 G,并对每个顶点调用函数 Visit 一次。一旦 Visit()失败,则操作失败。ADT Graph二、图的常用术语 对上图有:G1=(V1,A1)其中:V1=v1,v2,v3,v4 A1=,如果用 n 表示图中顶点数目,用 e 表示边或弧的数目,则有:对于无向图,e 的取值范围是 0 到 n(n-1)/2,有 n(n-1)/2 条边的无向图称为完全图。对于有向图,e 有取值范围是 0 到 n(n-1)。具有 n(n-1)条弧的有向图称为有向完全图。有很少条边或弧的图称为稀疏图,反之称为稠密图。v1 与 v2 互为邻接点e1 依附于顶点 v1 和 v2v1 和 v2 相关联v1 的度为 3 对有向图,如果每一对顶点之间都有通路,则称该图为强连通图。三、总结图的特征有向图与无向图的主要区别