图的定义和基本操作
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构
图的定义和基本操作
一、图的定义 二、图的基本术语 三、图的基本操作
一、图的定义
图(Graph)是由顶点的有限集合和描述顶点关系的有限集合组成的。
G=(V, R)
V是图G中顶点的有限
V={v0, v1, v2, …, vn}
ห้องสมุดไป่ตู้
集合,称为顶点集
R={VR}
VR={<vi, vj> | vi, vj∈V且P(vi, vj)}
⑧ InsertVex (G, v):图G存在,在G中增加一个新顶点v。 ⑨ DeleteVex (G, v):图G存在,v是G中某个顶点,删除顶点v及其相关 联的弧。 ⑩ InsertArc (G, v, w):图G存在,v和w是G中两个顶点,在G中增加一条 从顶点v到顶点w的弧或边。 ⑪ DeleteArc (G, v, w):图G存在,v和w是G中两个顶点,删除G中从顶 点v到顶点w的弧或边。
⑫ DFSTraverse (G):图G存在,对G进行深度优先遍历。
⑬ BFSTraverse (G):图G存在,对G进行广度优先遍历。
数据结构
生成树
三、图的基本操作
① CreateGraph (G):构造图G。 ② DestoryGraph (G):图G存在,销毁图G。 ③ LocateVex (G, v):图G存在,若图G中存在顶点v,则返回顶点v在图 中的位置;否则返回0。 ④ GetVex (G, v):图G存在,v是G中某个顶点,返回v的值。 ⑤ PutVex (G, v, value):图G存在,v是G中某个顶点,将value值赋给v。 ⑥ FirstAdjVex (G, v):图G存在,v是G中某个顶点,返回v的第一个邻接 点;若v无邻接点,则返回空。 ⑦ NextAdjVex (G, v, w):图G存在,v是G中某个顶点,w是v的邻接顶点, 返回v的(相对于w的)下一个邻接顶点;若w是v的最后一个邻接顶点, 则返回空。
连通分量
对于有向图G=(V, {A}),如果每对顶点v1, v2∈V且v1≠v2,从v1到v2、 v2到v1都有路径,则称该有向图为强连通图。 有向图的极大强连通子图称为有向图的强连通分量。
强连通分量
⑩ 生成树: 一个连通图的生成树是指该图的一个极小连通子图,它含有图中的全 部顶点,但只有足以构成一棵树的n-1条边。
⑥ 度: 对于无向图,顶点v的度是和v相关联的边的数目,记作TD(v)。 对于有向图: 以顶点v为弧头的弧的数目称为该顶点的入度,记作ID(v) 以顶点v为弧尾的弧的数目称为该顶点的出度,记作OD(v) 有向图顶点v的度为TD(v)=ID(v)+OD(v)
⑦ 权与网: 与边或弧相关的数称为权;将带权的图称为网 。
⑧ 路径: 从顶点v出发经过一个顶点序列v=vi0,vi1,vi2,…,vin=v',可以到 达顶点v',则称该顶点序列为从顶点v到v'的路径。
路径中边或弧的数目称为路径的长度。 第一个顶点和最后一个顶点相同的路径称为回路或环。 顶点序列中顶点不重复出现的路径称为简单路径。
⑨ 连通图: 对于无向图G=(V, {E}),如果从顶点v1到v2有路径,则称v1和v2是连通 的;无向图中的极大连通子图称为该无向图的连通分量。
VR是顶点关系 的有限集合
P(vi, vj)定义了< vi, vj>的意义
二、图的基本术语
① 有向图:两个顶点之间的连线是有方向的,该图称为有向图。 ② 无向图:两个顶点之间的连线是没有方向的,该图称为无向图。 弧尾或起始点
边 弧
弧头或终端点
③ 完全图:分为无向完全图和有向完全图两种。
任意两个顶点之间 都有一条边相连
任意两个顶点之间都有方 向相反的两条弧相连
④ 子图:对于两个图G=(V, {E})和G'=(V', {E'}),如果V'是V的子集,E' 是E的子集,则称图G'是图G的子图。
子图
⑤ 邻接点: 对于无向图G=(V, {E}),如果边(v1, v2)∈E,则称顶点v1与v2互为邻接点。 对于有向图G=(V, {A}),如果弧<v1, v2>∈A,则称顶点v1邻接到顶点v2, 顶点v2邻接自顶点v1。
图的定义和基本操作
一、图的定义 二、图的基本术语 三、图的基本操作
一、图的定义
图(Graph)是由顶点的有限集合和描述顶点关系的有限集合组成的。
G=(V, R)
V是图G中顶点的有限
V={v0, v1, v2, …, vn}
ห้องสมุดไป่ตู้
集合,称为顶点集
R={VR}
VR={<vi, vj> | vi, vj∈V且P(vi, vj)}
⑧ InsertVex (G, v):图G存在,在G中增加一个新顶点v。 ⑨ DeleteVex (G, v):图G存在,v是G中某个顶点,删除顶点v及其相关 联的弧。 ⑩ InsertArc (G, v, w):图G存在,v和w是G中两个顶点,在G中增加一条 从顶点v到顶点w的弧或边。 ⑪ DeleteArc (G, v, w):图G存在,v和w是G中两个顶点,删除G中从顶 点v到顶点w的弧或边。
⑫ DFSTraverse (G):图G存在,对G进行深度优先遍历。
⑬ BFSTraverse (G):图G存在,对G进行广度优先遍历。
数据结构
生成树
三、图的基本操作
① CreateGraph (G):构造图G。 ② DestoryGraph (G):图G存在,销毁图G。 ③ LocateVex (G, v):图G存在,若图G中存在顶点v,则返回顶点v在图 中的位置;否则返回0。 ④ GetVex (G, v):图G存在,v是G中某个顶点,返回v的值。 ⑤ PutVex (G, v, value):图G存在,v是G中某个顶点,将value值赋给v。 ⑥ FirstAdjVex (G, v):图G存在,v是G中某个顶点,返回v的第一个邻接 点;若v无邻接点,则返回空。 ⑦ NextAdjVex (G, v, w):图G存在,v是G中某个顶点,w是v的邻接顶点, 返回v的(相对于w的)下一个邻接顶点;若w是v的最后一个邻接顶点, 则返回空。
连通分量
对于有向图G=(V, {A}),如果每对顶点v1, v2∈V且v1≠v2,从v1到v2、 v2到v1都有路径,则称该有向图为强连通图。 有向图的极大强连通子图称为有向图的强连通分量。
强连通分量
⑩ 生成树: 一个连通图的生成树是指该图的一个极小连通子图,它含有图中的全 部顶点,但只有足以构成一棵树的n-1条边。
⑥ 度: 对于无向图,顶点v的度是和v相关联的边的数目,记作TD(v)。 对于有向图: 以顶点v为弧头的弧的数目称为该顶点的入度,记作ID(v) 以顶点v为弧尾的弧的数目称为该顶点的出度,记作OD(v) 有向图顶点v的度为TD(v)=ID(v)+OD(v)
⑦ 权与网: 与边或弧相关的数称为权;将带权的图称为网 。
⑧ 路径: 从顶点v出发经过一个顶点序列v=vi0,vi1,vi2,…,vin=v',可以到 达顶点v',则称该顶点序列为从顶点v到v'的路径。
路径中边或弧的数目称为路径的长度。 第一个顶点和最后一个顶点相同的路径称为回路或环。 顶点序列中顶点不重复出现的路径称为简单路径。
⑨ 连通图: 对于无向图G=(V, {E}),如果从顶点v1到v2有路径,则称v1和v2是连通 的;无向图中的极大连通子图称为该无向图的连通分量。
VR是顶点关系 的有限集合
P(vi, vj)定义了< vi, vj>的意义
二、图的基本术语
① 有向图:两个顶点之间的连线是有方向的,该图称为有向图。 ② 无向图:两个顶点之间的连线是没有方向的,该图称为无向图。 弧尾或起始点
边 弧
弧头或终端点
③ 完全图:分为无向完全图和有向完全图两种。
任意两个顶点之间 都有一条边相连
任意两个顶点之间都有方 向相反的两条弧相连
④ 子图:对于两个图G=(V, {E})和G'=(V', {E'}),如果V'是V的子集,E' 是E的子集,则称图G'是图G的子图。
子图
⑤ 邻接点: 对于无向图G=(V, {E}),如果边(v1, v2)∈E,则称顶点v1与v2互为邻接点。 对于有向图G=(V, {A}),如果弧<v1, v2>∈A,则称顶点v1邻接到顶点v2, 顶点v2邻接自顶点v1。