- 6
- 0
- 约1.12万字
- 约 85页
- 2018-03-27 发布于江西
- 举报
数据结构 c语言描述第七章图.ppt
所谓邻接矩阵(Adjacency Matrix)的存储结构,就是用一维数组存储图中顶点的信息,用矩阵表示图中各顶点之间的邻接关系。假设图G=(V,E)有n个确定的顶点,即V={v0,v1,…,vn-1},则表示G中各顶点相邻关系为一个n×n的矩阵 若G是网图,则邻接矩阵可定义为 A[i][j]= 其中,wi,j表示边(vi,vj)或vi,vj上的权值;∞表示一个计算机允许的、大于所有边上权值的数。 邻接表(Adjacency List)是图的一种顺序存储与链式存储结合的存储方法。 一个n个顶点的图的邻接表表示由表头结点表与边表两部分构成。 1)无向图 若无向图中有n 个顶点、e条边,则它的邻接表需n个头结点和2e个表结点。显然,在边稀疏(en(n-1)/2)的情况下,用邻接表表示图比邻接矩阵节省存储空间, 顶点vi的度恰为第i个链表中的结点数 2)有向图的邻接表 第i个链表中的结点个数只是顶点vi的出度,为求入度,必须遍历整个邻接表。在所有链表中其邻接点域的值为i的结点的个数是顶点vi的入度。 有时,为了便于确定顶点的入度或以顶点vi为头的弧,可以建立一个有向图的逆邻接表,即对每个顶点vi 建立一个链接以vi为头的弧的链表。 3)有向图的逆邻接表 在邻接表上容易找到任一顶点的第一个邻接点和下一个邻接点,但要判定任意两个顶点(vi 和vj)之间是否有边或弧相连,则需搜索第i个或第j个链表,因此,不及邻接矩阵方便。 十字链表(Orthogonal List)是有向图的一种存储方法,它实际上是邻接表与逆邻接表的结合,即把每一条边的边结点分别组织到以弧尾顶点为头结点的链表和以弧头顶点为头顶点的链表中。 邻接多重表(Adjacency Multilist)主要用于存储无向图。因为,如果用邻 接表存储无向图,每条边的两个边结点分别在以该边所依附的两个顶点 为头结点的链表中,这给图的某些操作带来不便。例如,对已访问过的 边做标记,或者要删除图中某一条边等,都需要找到表示同一条边的两 个结点。因此,在进行这一类操作的无向图的问题中采用邻接多重表作 存储结构更为合适 。 顶点值域 指针域 顶点结点结构 标记域 顶点位置 指针域 顶点位置 指针域 边上信息 边表结点结构 练习: 已知如右图所示的有向图,请给出该图的 每个顶点的入/出度 邻接矩阵 邻接表 逆邻接表 【思路】初始化:1)对每一个结点访问位为false 2)广度优先遍历每一个连通图 从顶点v开始广度优先遍历连通图 1) 初始化队列Q 2) 访问顶点v,并使其访问位为true ,并入队列Q 3) 若队列不空 a)出队列→v b)求v的第一个邻接点w c)若w存在 ●w未被访问,则访问w并使其访问位为true ,并入队列Q ● 求v的下一个邻接点w 重复执行c)直到w 不存在为止 设E(G)为连通图G中所有边的集合,则从图中任一顶点出发遍历图时,必定将E(G)分成两个集合T(G) 和B(G),其中T(G) 是遍历过程中历经的边的集合; B(G)是剩余边的集合。 作业:已知连通网的邻接矩阵,顶点集合为{v1,v2,v3,v4,v5},试画出它所表示的从顶点v1开始利用prim算法得到的最小生成树。 7.5 有向无环图及其应用 一个无环的有向图称做有向无环图。 例如,计算机专业学生的学习就是一个工程,每一门课程的学习就是整个工程的一些活动。其中有些课程要求先修课程,有些则不要求。这样在有的课程之间有先后关系,有的课程可以并行地学习。 可以用有向图表示一个工程。在这种有向图中,用顶点表示活动,用有向边Vi, Vj表示活动Vi 必须先于活动Vj 进行。这种有向图叫做顶点表示活动的AOV网络 (Activity On Vertices)。 用边表示活动的网络(AOE网络
您可能关注的文档
最近下载
- 2024-2025学年统编版道德与法治六年级下册全册教案(教学设计).pdf VIP
- 环保在线监测系统运行维护管理体系.pdf VIP
- 冯巧根 管理会计(第4版)课后习题答案.docx VIP
- 医疗废物岗位职责.docx VIP
- 最新人教版三年级数学下册全册教案(新课标版).docx VIP
- 基于单片机的火灾报警及灭火系统.docx VIP
- 基于单片机的灭火机器人设计.doc VIP
- 安徽省定远县2025年上半年事业单位公开招聘试题含答案分析.docx VIP
- 小学数学教学中数学建模思想与生活问题解决课题报告教学研究课题报告.docx
- 中国糖尿病防治指南(2024版)解读-糖尿病相关技术.pptx
原创力文档

文档评论(0)