版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七图图b 7.1 图的定义和基本术语b 7.2 图的存储结构 7.2.1数组表示法 7.2.2邻接表 7.2.3十字链表 7.2.4邻接多重表b 7.3 图的遍历 7.3.1 深度优先搜索 7.3.2 广度优先搜索b 7.4 图的连通性问题 7.4.1 无向图的连通分量和生成树 7.4.2 最小生成树b 7.5 有向无环图及其应用 7.5.1 拓扑排序 7.5.2 关键路径b 7.6 最短路径 7.6.1 从某个源点到其余各顶点的最短路径 7.6.2 每一对顶点间的最短路径b图图(graph)是较线性表和树更为复杂的结构。b图图中任意数据两个元素之间都可能相关。第七图图 g1 = (v1,
2、a1) v1 = v1,v2,v3,v4 a1 = , g2 = (v2, e2) v2 = v1,v2,v3,v4,v5 e2 = (v1,v2),(v1,v4),(v2,v3),(v2,v5) ,(v3,v4),(v3,v5) 7.1 图的定义和基本术语v1v3v4v2有向图 g1v1v4v5v2无向图 g2v3 顶点 弧 弧尾 弧头顶点边7.1 图的定义和基本术语(续一) 完全图:完全图:n个顶点有n(n-1)/2条边的无向图 有向完全图:有向完全图: n个顶点有n(n-1)条弧的有向图 稀疏图:有稀疏图:有很少条边的图(如边数e nlogn) 稠密图:稠密图:非稀疏图 权:权: 与边或
3、弧相关的数数 网络:网络: 带权的图v1v3v2v1v3v2274 子图:子图: g =(v,e)和g1 = (v1,e1) 若v1属于v, e1属于e 则g1是g的子图7.1 图的定义和基本术语(续二)v1v1v3v4v2v3v1v3v4v1邻接点:无向图中有边相连的两个顶点互为无向图中有边相连的两个顶点互为邻接点 顶点的度:度:无向图中和某顶点相连的邻接点数无向图中和某顶点相连的邻接点数 入度:入度:有向图中指向某顶点的弧的数目有向图中指向某顶点的弧的数目 出度:出度:有向图中从某顶点出发的弧的数目有向图中从某顶点出发的弧的数目7.1 图的定义和基本术语(续三) 路径:路径:两个顶点之间的
4、顶点序列,该序列的每个顶点与其前驱是邻接点,每个顶点与其后继也是邻接点 回路(环):回路(环):第一顶点和最后顶点相同的路径 简单路径:简单路径: 顶点不重复的路径 连通:连通: 两个顶点之间有路径 连通图:连通图: 任意任意两个顶点之间有路径 连通分量:连通分量: 无向图中的极大连通子图。 强连通图:任意强连通图:任意两个顶点之间有双向路径 强连通分量:强连通分量:有向图中的极大强连通子图。 连通图的生成树:生成树:极小连通子图。 不唯一,但n个顶点的生成树 有且仅有n-1条边。 生成森林:生成森林: 7.2 图的存储结构 7.2.1 数组表示法#define infinity int_ma
5、x#define max_vertex_num 20typedef enumdg, dn, ag, an graphkind;typedef struct arccell vrtype adj; infotype *info;arccell, adjmatrixmax_vertex_num max_vertex_num typedef struct vetextype vexsmax_vertex_num ; adjmatrix arc; int vexnum, arcnum; graphkind kind;mgraph;数组表示法(邻接矩阵)b无向图、有向图、网均适用易求各顶点的度。b例如有
6、向图g1和无向图g2的邻接矩阵为0 1 1 00 0 0 00 0 0 11 0 0 0g1.arc =0 1 0 1 01 0 1 0 10 1 0 1 11 0 1 0 00 1 1 0 0g2.arc =n2的存储量无向图的邻接矩阵总是对称的-可以采用压缩存储邻接矩阵v1v3v4v2v5v65489731565(a) 网 5 7 4 8 9 5 6 5 3 1 (b) 邻接矩阵7.2.2 邻接表- - 链式链式存储结构#define max_vertex_num 20typedef struct arcnode int adjvex; struct arcnode *nextarc; i
7、nfotype *info;arcnode;typedef struct adjlist verteces; int vexnum, arcnum; int kind;algraph;typedef struct vnode vetextype data; arcnode *firstarc; vnode, adjlist max_vertex_num ;data firstarc头结点adjvex nextarc info表结点邻接表的链式链式存储结构示意图0123v1v2 v3v40123v1v2v3v401234v1v2v3v4v52 1 3 3 0 0 2 0 3 1 2 0 2 1
8、2 0 4 3 1 4 g1的邻接表g2的邻接表g1的逆邻接表邻接表:邻接表:求出度容易,求入度难邻接表:邻接表:求入度容易,求出度难7.3 图的遍历b图的遍历:从图的某顶点出发,访问所有顶点,且每个顶点仅被访问一次。b两种遍历图的路径:b深度优先搜索和广度优先搜索b它们对无向图和有向图都适用b深度优先搜索类似于树的先根遍历b广度优先搜索类似于树的层次遍历7.3.1 深度优先搜索v1v2v4v5v8v3v6v7v1v2v4v8v5v3v6v71 2 3 4 5 6 7 8visited1 1 0 1 1 0 0 1遍历顺序:非连通的图重复上述过程, 使每个顶点均被访问v1v2stackv4v8
9、v5深度优先搜索算法boolean visitedmax;status (* visitfunc)(int v);void dfstraverse(graph g, status (* visit)(int v) visitfunc = visit; for(v=0; vg.vexnum; +v) visitedv = false; for(v=0; vg.vexnum; +v) if(!visitedv) dfs(g,v);void dfs(graph g, int v) visitedv = true; visitfunc(v); for(w=firstadjvex(g, v); w; w
10、 = nextadjvex(g,v,w) if(!visitedw) dfs(g,w);7.3.2 广度优先搜索v1v2v4v5v8v3v6v7v1v2v3v4v5v6v7v81 2 3 4 5 6 7 8visited1 0 0 0 0 0 0 0v2v3queue遍历顺序:非连通的图重复上述过程, 使每个顶点均被访问void bfstraverse(graph g, status (* visit)(int v) for(v=0; vg.vexnum; +v) visitedv = false; intiqueque(q); for(v=0; vg.vexnum; +v) if(!visi
11、tedv) enqueue(q,v); while(!queueempty(q) dequeue(u); visitedu = true; visit (u); for(w=firstadjvex(g, u); w; w = nextadjvex(g,u,w) if(!visitedw) visitedw=true; visited(w); enqueue(g,w); 广度优先搜索算法7.4 图的连通性问题b7.4.1 无向图的连通分量和生成树v1v2v4v5v8v3v6v7深度优先生成树v1v2v4v5v8v3v6v7广度优先生成树7.4.3 最小生成树-树上各边的代价之和b最小生成树- 一个v1v2v4v5v3v66555662134v1v2v4v5v3v61v1v2v4v5v3v614v1v2v4v5v3v6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重德、重勤、重廉 涵养风清气正的政治生态
- 幼儿园中小学《网络安全》安全教育课件
- 电力新能源行业市场前景及投资研究报告:缺电产业链国产链储能全面导入
- 合规转利润:降本增效全指南(2026)《GBT 39094-2020中国气象卫星名词术语》
- 河北省廊坊市霸州市第三中学2025-2026学年八年级下学期7月期末考试物理试卷(含答案)
- 合规转利润:降本增效全指南(2026)《GBT 38986-2020锆及锆合金表面除鳞和清洁方法》
- 合规转利润:降本增效全指南(2026)《GBT 38651.3-2020公共信息标志载体 第3部分:安装要求》从合规成本到利润增长全案:避坑防控+降本增效+商业壁垒构建
- 老年痴呆康复教育
- 六个月婴儿护理
- 战略风险2026年风险评估与评估合同
- 2026科粤版九年级化学上学期期末复习知识清单(默写版+解析版)
- 2025年江西省九江市检察院书记员考试试题及答案
- GB/T 47054-2026森林草原防火无人机巡查技术规范
- 2026年北京市门头沟区社区工作者考试真题解析含答案
- 部门管理培训课件
- 医疗安全(不良)事件根本原因分析法活动指南(T-CQAP4002-2024)
- 国家能源集团科研总院社会招聘参考题库新版
- GB/T 33061.10-2025塑料动态力学性能的测定第10部分:使用平行平板振动流变仪测定复数剪切黏度
- 井场作业应急预案(3篇)
- Q-SY 13034-2024 物料主数据数字化描述规范
- 2024年上海秋季高考语文真题含答案
评论
0/150
提交评论