- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 图(Graph)
回顾 霍夫曼编码(构造算法思想和过程) 线性结构 操作受限的线性结构 树结构 图结构 图的定义和术语 图的存储结构 图的遍历 最小生成树 有向无环图与拓扑排序 最短路径 图的定义和术语 图定义 图是由顶点集合(vertex)及顶点间的关系集合组成的一种数据结构: ADT Graph{ 数据对象V: V是具有相同特性的数据元素的集合,称为顶 点集。 数据关系R: R={VR} VR={v, w | v, w ? V P (v, w) , v, w表示从 v 到 w 的一条弧,v为弧尾,w为弧头;P(v,w) 定义了弧v, w的意义或信息 } … 无向图 若v,w ?VR 则必有 w,v ?VR, 则用边(v,w)记之,此图称为无向图。 有向图中,顶点对v, w 是有序的。无向图中顶点对(v, w)是无序的。 完全图 若有 n 个顶点的无向图有 n(n-1)/2 条边, 则此图为无向完全图。有 n 个顶点的有向图有n(n-1) 条边, 则此图为有向完全图。 邻接点(Adjacent) 如果 (u, v) 是 E(G) 中的一条边,则称 u 与 v 互为邻接点。 子图(Subgraph) 设有两个图 G=(V, E) 和 G’=(V’, E’)。若 V’? V 且 E’?E, 则称 图G’ 是 图G 的子图。 权(Weight) 某些图的边具有与它相关的数, 称之为权。这种带权图叫做网(network)。 顶点的度(Degree) 一个顶点v的度是与它相关联的边的条数。记作TD(v)。 顶点 v 的入度(InDegree)是以 v 为终点的有向边的条数, 记作 ID(v); 顶点 v 的出度是以 v 为始点的有向边的条数, 记作 OD(v)。 有向图中, TD(v)= ID(v)+ OD(v) 路径(Path) 在图 G=(V, E) 中, 若从顶点 vi 出发, 沿一些边经过一些顶点 vp1, vp2, …, vpm,到达顶点vj。则称顶点序列 (vi vp1 vp2 … vpm vj) 为从顶点vi到顶点 vj 的路径。它经过的边(vi ,vp1 )、(vp1, vp2)、...、(vpm ,vj) 应是属于E的边。 路径长度 非带权图的路径长度是指此路径上边的条数。带权图的路径长度是指路径上各边的权之和。 简单路径 若路径上各顶点 v1,v2,...,vm 均不 互相重复, 则称这样的路径为简单路径。 简单回路 若路径上第一个顶点 v1 与最后一个顶点vm重合, 则称这样的路径为回路或环(Cycle)。 连通图与连通分量 在无向图中, 若从顶点v1到顶点v2有路径, 则称顶点v1与v2是连通的。如果图中任意一对顶点都是连通的, 则称此图是连通图。非连通图的极大连通子图叫做连通分量。 强连通图与强连通分量 在有向图中, 若对于每一对顶点vi和vj, 都存在一条从vi到vj和从vj到vi的路径, 则称此图是强连通图。非强连通图的极大强连通子图叫做强连通分量。 有向树: 恰有一个顶点入度为0,其余顶点入度均为1的有向图。 生成森林:一个有向图的生成森林由若干棵有向树组成,含有图中全部顶点,且仅包含足以构成若干棵不相交的有向树的弧。 图的存储结构 在图的邻接矩阵表示中,有一个记录各个顶点信息的顶点表,还有一个表示各个顶点之间关系的邻接矩阵。 设图 A = (V, E)是一个有 n 个顶点的图, 图的邻接矩阵是一个二维数组 A.arcs[n][n],定义: 无向图的邻接矩阵是对称的; 有向图的邻接矩阵可能是不对称的。 在有向图中, 统计第 i 行 1 的个数可得顶点 i 的出度,统计第 i 列 1 的个数可得顶点 i的入度。 在无向图中, 统计第 i 行 (列) 1 的个数可得顶点i 的度。 网的邻接矩阵 用邻接矩阵表示的结构定义 图的构造 Status CreateUDN(Mgraph G){ //无向网的构造 scanf(G.vexnum,G.arcnum,IncInfo); for (i=0;iG.vexnum;++i) scanf(G.vexs[i]); for (i=0 ;iG.vexnum;++i) //初始化邻接矩阵 for (j=0;jG.vexnum;++j) G.arcs[i][j]={I
您可能关注的文档
最近下载
- 建筑工程施工质量验收统一标准GB50300-2013_20200227134634.docx VIP
- 附件15 4-小鹏汽车客流系统app使用手册v1 0 1-0415.pdf VIP
- 小米香港上市招股说明书-英文版 (2).pdf VIP
- 卫生部手术分级目录(2025年版).doc VIP
- 凯福科技 步进电机驱动器Y2SD1R5使用手册.pdf VIP
- 青19J2青19J3建筑专业(三):建筑用料及做法+屋面.docx
- 《YDT2057-2009-通信机房安全管理总体要求》.pdf VIP
- 剪切强度条件.ppt VIP
- SHARP夏普PN-V601 LCD MONITOR使用说明书.PDF VIP
- (完整版)高中英语词汇3500词(必背).pdf VIP
文档评论(0)