- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1 图的基本概念 图定义 图是由顶点集合(vertex)及顶点间的关系 集合组成的一种数据结构: Graph=( V, E ) 其中 V = { x | x ? 某个数据对象} 是顶点的有穷 非空集合; E = {(x, y) | x, y ? V } 是顶点之间关系的有穷集合,也叫做边(edge)集 合。 有向图与无向图 若图G中的每条边都是有方向的,则称G为有向图。有向边也称为弧。若图G中的每条边都是没有方向的,则称G为无向图。 完全图 对有n个顶点的图,若为无向图且边数为n(n-1)/2,则称其为无向完全图;若为有向图且边数为n(n-1) ,则称其为有向完全图。 邻接顶点 若(vi,vj)是一条无向边,则称顶点vi和vj互为邻接点,或称vi和vj相邻接,并称边(vi,vj)关联于顶点vi和vj,或称(vi,vj)与顶点vi和vj相关联。 在图的邻接矩阵表示中,有一个记录各个顶点信息的顶点表,还有一个表示各个顶点之间关系的邻接矩阵。 设图 A = (V, E)是一个有 n 个顶点的图,则图的邻接矩阵是一个二维数组 A .Edge[n][n],定义: 无向图的邻接矩阵是对称的,有向图的邻接矩阵可能是不对称的。 在有向图中, 统计第 i 行 1 的个数可得顶点 i 的出度,统计第 j 列 1 的个数可得顶点 j 的入度。 在无向图中, 统计第 i 行 (列) 1 的个数可得顶点i 的度。 网络的邻接矩阵 邻接表 (Adjacency List) 有向图的邻接表和逆邻接表 在有向图的邻接表中,第 i 个边链表链接的边都是顶点 i 发出的边。也叫做出边表。 在有向图的逆邻接表中,第 i 个边链表链接的边都是进入顶点 i 的边。也叫做入边表。 算法的时间复杂度是O(n+e) 在邻接表的边链表中,各个表结点的链入顺序任意,视表结点输入次序而定。 设图中有 n 个顶点,e 条边,则用邻接表表示无向图时,需要 n 个表头结点,2e 个表结点;用邻接表表示有向图时,若不考虑逆邻接表,只需 n 个表头结点,e 个表结点。 带权图的边结点中保存该边上的权值 cost。 网络 (带权图) 的邻接表 7.3 图的遍历性 从已给的连通图中某一顶点出发,沿着一些边访遍图中所有的顶点,且使每个顶点仅被访问一次,就叫做图的遍历 ( Graph Traversal )。 图中可能存在回路,且图的任一顶点都可能与其它顶点相通,在访问完某个顶点之后可能会沿着某些边又回到了曾经访问过的顶点。 为了避免重复访问,可设置一个标志顶点是否被访问过的辅助数组 visited [ ],它的初始状态为 0,在图的遍历过程中,一旦某一个顶点 i 被访问,就立即让 visited [i] 为 1,防止它被多次访问。 深度优先搜索DFS ( Depth First Search ) 深度优先搜索的示例 DFS 在访问图中某一起始顶点 v 后,由 v 出发, 访问它的任一邻接顶点 w1;再从 w1 出发,访问与 w1邻接但还没有访问过的顶点 w2;然后再从 w2 出 发,进行类似的访问,… 如此进行下去,直至到达 所有的邻接顶点都被访问过的顶点 u 为止。接着, 退回一步,退到前一次刚访问过的顶点,看是否还 有其它没有被访问的邻接顶点。如果有,则访问此 顶点,之后再从此顶点出发,进行与前述类似的访 问;如果没有,就再退回一步进行搜索。重复上述 过程,直到连通图中所有顶点都被访问过为止。 算法分析 图中有 n 个顶点,e 条边。 如果用邻接表表示图,沿链可以找到某个顶点 v 的所有邻接顶点 w。由于总共有 2e 个边结点,所以扫描边的时间为O(e)。而且对所有顶点递归访问1次,所以遍历图的时间复杂性为O(n+e)。 如果用邻接矩阵表示图,则查找每一个顶点的所有的边,所需时间为O(n),则遍历图中所有的顶点所需的时间为O(n2)。 广度优先搜索BFS ( Breadth First Search ) 广度优先搜索的示例 使用广度优先搜索在访问了起始顶点 v 之后,由 v 出发,依次访问 v 的各个未曾被访问过的邻接顶点 w1, w2, …, wt,然后再顺序访问 w1, w2, …, wt 的所有还未被访问过的邻接顶点。再从这些访问过的顶点出发,再访问它们的所有还未被访问过的邻接顶点,… 如此做下去,直到图中所有顶点都被访问到为止。 广度优先搜索是一种分层的搜索过程,每向前走一步可能访问一批顶点,不像深度优先搜索那样有往回退的情况。因此,广度优先搜索不是一个递归的过程,其算法也不是递归的。 为了实现逐层访问,算法中使用了一
您可能关注的文档
- 组织行为学 作者 刘怫翔 1 第一章 导论 组织行为学.ppt
- 组织行为学 作者 刘怫翔 3 第三章 价值观、态度与情绪.ppt
- 旅游电子商务 作者 杨路明 旅游电子商务01.ppt
- 旅游电子商务 作者 杨路明 旅游电子商务02.ppt
- 旅游电子商务 作者 杨路明 旅游电子商务03.ppt
- 旅游电子商务 作者 杨路明 旅游电子商务04.ppt
- 旅游电子商务 作者 杨路明 旅游电子商务07.ppt
- 旅游电子商务 作者 杨路明 旅游电子商务11.ppt
- 旅游电子商务 作者 杨路明 旅游电子商务12.ppt
- 旅游法规教程 作者 赵利民 主编 第二章.ppt
- 绿电2022年系列报告之一:业绩利空释放,改革推动业绩反转和确定成长.docx
- 化学化工行业数字化转型ERP项目企业信息化规划实施方案.pdf
- 【研报】三部门绿电交易政策解读:溢价等额冲抵补贴,绿电交易规模有望提升---国海证券.docx
- 中国债券市场的未来.pdf
- 绿电制绿氢:实现“双碳”目标的有力武器-华创证券.docx
- 【深度分析】浅析绿证、配额制和碳交易市场对电力行业影响-长城证券.docx
- 绿电:景气度+集中度+盈利性均提升,资源获取和运营管理是核心壁垒.docx
- 节电产业与绿电应用年度报告(2022年版)摘要版--节能协会.docx
- 2024年中国人工智能系列白皮书-智能系统工程.pdf
- 如何进行行业研究 ——以幼教产业为例.pdf
文档评论(0)