[理学]数据结构导论“ 图”.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]数据结构导论“ 图”

第5章 图 5.1 图的基本概念 5.1.1 图的实际背景 5.1.2 图的定义和术语 5.2 图的存储结构 5.2.1 邻接矩阵 5.2.2 邻接表(Adjacency List)表示法 5.3 图的遍历 5.3.1 连通图的深度优先搜索 5.3.1 连通图的广度优先搜索 5.4 最小生成树 ●构造最小生成树的Prim 算法 5.5 拓扑排序 ●若G是带权图(网),则邻接矩阵定义为: Wij 若(vi,vj)或vi,vj∈E A[i,j]= ∞ 反之 1 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 6 ∞ ∞ 2 2 3 ∞ ∞ ∞ ∞ ∞ 1 5 ∞ ∞ ∞ 1 3 图5-6 网及其邻接矩阵 2 3 4 2 5 2 1 1 3 3 5 6 ●邻接表类似于树的孩子链表表法。在邻接表中,对图中每个顶点建立一个单链表,n个顶点就要建n个链表。对于无向图,第i个单链表中的结点表示依赖于顶点vi 的边。对于有向图是以顶点vi为尾的弧。这个单链表称为顶点vi 的单链表(即vi 的邻接表)。单链表中每一个结点称为表结点,应包括两个域:邻接点域(adjvex),用以存放与vi 相邻接的顶点序号;链域(nextarc) ,用以指向同vi 邻接的下一个结点。 next adjvex 表结点形式 链域 邻接点域 ●另外,每一个单链表设一个表头结点。每一个表头结点有两个域,一个是顶点域(vertex),用来存放顶点vi 的信息;另一个是边表头指针域(firstarc),用来指向vi 的邻接表中的第一个表结点。为了便于管理和随机访问任一顶点的单链表,将所有单链表的头结点组织成一个一维数组。 firstarc vertex 表头结点形式 边表头指针域 顶点域 v4 v3 v2 v1 4 3 2 1 2 1 ∧ 3 ∧ 4 1 0 ∧ 3 3 图5-8 无向图G2的邻接表 边表 序号 顶点表 V1 V2 V3 V4 ∧ 4 2 无向图G2 (1)无向图的邻接表中,顶点vi的度为第 i 个链表中的结点数; (2)有向图的邻接表中,第i个链表中的结点数只是顶点 vi 的出度,为求入度,要遍历整个邻接表。为了便于求顶点的入度,有时可建立逆邻接表,即对每个顶点 vi 建立以 vi为弧头的链表。 图5-9 G1的邻接表和逆邻接表 (a)邻接表 (b)逆邻接表 V1 V2 V3 V4 ∧ v4 v3 v2 v1 2 1 ∧ 4 1 ∧ 3 ∧ 4 v4 v3 v2 v1 2 ∧ 2 ∧ 3 ∧ 1 1 ∧ 3 ●从图中某一顶点出发访遍图中其余顶点,且使每一顶点仅被访问一次。这一过程叫做图的遍历。  遍历图的基本方法有两种:深度优先搜索和广度优先搜索。这两种方法都适用于有向图和无向图。  因为图的任一顶点都可能和其余顶点相邻接,因而在遍历图的过程中,可能会多次访问某个顶点。为了避免这种情况,要记每个已访问过的顶点。可增设一个辅助数组visited[n],每个visited[i]的初值置为0,一旦顶点vi被访问,就将visited[i]置为1。 ●连通图深度优先搜索的基本思想如下:假定图中某个顶点vi为出发点,首先访问出发点vi ,然后任选一个vi 的未访问过的邻接点vj,以vj为新的出发点继续进行深度优先搜索,直至图中所有顶点都被访问过。  图的深度优先搜索是一个递归过程,类似于树的x先根遍历,它的特点是尽可能先对纵深方向进行搜索,故称之深度优先搜索。 v0 v1 v2 v4 v3 v5 v6 v7 v0 v1 v2 v3 v5 v7 v4 v6 深度优先搜索顺序: v0 → v1 → v3 → v7 → v 4 → v2 → v5 → v6 ●连通图广度优先搜索的基本思想是:从图中某个顶点vi出发,访问了vi之后依次访问vi的所有邻接点;然后分别从这些邻接点出发按广度优先搜索遍历图的其它顶点,直至所有顶点都被访问到。 它类似于树的按层次遍历,特点是尽可能优先对横向搜索,故称之为广度优先搜索。图的广度优先搜索不是一个递归过程 v 0 v 1 v 2 v 4 v 3 v 5 v 6 v 7 v 0 v 1 v 2 v 3 v5 v 4 v 6 v 7 深度广先搜索顺序: v0 → v1 → v2 → v3 → v 4 → v5 → v6→ v7 ●一个连通图的生成树,是含有该连通图的全部顶点的一个极小连通子图。一个有n个顶点的连通图的生成树有且仅有n-1条边;一个连通图的生成树不唯一。 ●一棵树的权定义为它所含各边的权之和。 ●一个连通网络的最小生成树是该图所有生成树中权最小的生成树。 5 0 2 4 5 1 3 6 5 1 5 6 4 2 3 6

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档