电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

武汉理工大学-信息工程学院-数据结构-ppt-课件ch07-1-图1-图的定义和存储

21页
  • 卖家[上传人]:F****n
  • 文档编号:88051440
  • 上传时间:2019-04-17
  • 文档格式:PPT
  • 文档大小:645.50KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第7章 图,数据结构讲义,- 图的定义和存储,信息工程学院 魏洪涛 Email:,图的定义:,图G是由顶点集V和顶点间的关系集合E(边的集合)组成的一种数据结构,可以用二元组定义为:G=(V,E)。,例如,对于图7-1所示的无向图G1和有向图G2,它们的数据结构可以描述为:G1=(V1,E1), 其中 V1=a,b,c,d, E1=(a,b),(a,c),(a,d),(b,d),(c,d),而G2=(V2,E2),其中V2=1,2,3, E2=,。,7.1 图的基本概念,7.2 图的存贮结构,图无法以数据元素在存储区中的物理位置来表示元素之间关系,即图没有顺序映象的存储结构。 用多重链表表示图,即以一个数据域和多个指针域组成的结点表示图中一个顶点,其中数据域存储该顶点的信息,指针域存储指向其邻接点的指针。 常用的有邻接矩阵、邻接表和十字链表等。不管哪一种方式,它除了要存储图中各个顶点本身的信息外,同时还要存储顶点与顶点之间的所有关系(边的信息)。,多重链表,1 图的邻接矩阵表示,在邻接矩阵表示中,除了存放顶点本身信息外,还用一个矩阵表示各个顶点之间的关系。若(i,j)E(G)或i,jE

      2、(G),则矩阵中第i行 第j列元素值为1,否则为0 。,7.2.1 邻接矩阵,例如, 对图7-8所示的无向图和有向图的邻接矩阵。,2 从无向图的邻接矩阵可以得出如下结论,(1)矩阵是对称的,可压缩存储(上(下)三角); (2)第i行或第i 列中1的个数为顶点i 的度; (3)矩阵中1的个数的一半为图中边的数目; (4)很容易判断顶点i 和顶点j之间是否有边相连(看矩阵中i行j列值是否为1)。,3 从有向图的邻接矩阵可以得出如下结论,(1) 矩阵不一定是对称的; (2) 第i 行中1的个数为顶点i 的出度; (3) 第i列中1的个数为顶点 i的入度; (4) 矩阵中1的个数为图中弧的数目; (5) 很容易判断顶点i 和顶点j 是否有弧相连.,4网的邻接矩阵表示,类似地可以定义网的邻接矩阵为: wij 若(i,j)E(G)或i,jE(G) Aij= 其它情形 网及网的邻接矩阵见下图。,邻接矩阵法优点: 容易实现图的操作,如:求某顶点的度、判断顶点之间是否有边(弧)、找顶点的邻接点等等。 邻接矩阵法缺点: n个顶点需要n*n个单元存储边(弧);空间效率为O(n2)。 对稀疏图而言尤其浪费空间

      3、。,1图的邻接表表示,图的邻接表存储方法是一种顺序分配与链式分配相结合的存储方法,它包括两部分:一部分是单链表,用来存放边的信息;另一部分是数组,主要用来存放顶点本身的数据信息。,边结点,顶点结点,7.2.2 邻接表,左图所示的无向图G3和有向图G4的邻接表见右图所示 :,2 从无向图的邻接表可以得到如下结论,(1)第i 个链表中结点数目为顶点i的度; (2)所有链表中结点数目的一半为图中边数; (3)占用的存储单元数目为n+2e 。,3 从有向图的邻接表可以得到如下结论,(1)第i 个链表中结点数目为顶点i的出度; (2)所有链表中结点数目为图中弧数; (3)占用的存储单元数目为n+e 。,从有向图的邻接表可知,不能求出顶点的入度。为此,我们必须另外建立有向图的逆邻接表,以便求出每一个顶点的入度。,例:已知某网的邻接(出边)表,请画出该网络。,80,64,1,2,5,当邻接表的存储结构形成后,图便唯一确定!,如果是无向图,只要搜索任意一个结点的边表。有向图要搜索两个结点的边表。,邻接表的优点: 空间效率高;容易寻找顶点的邻接点; 邻接表的缺点: 判断两顶点间是否有边或弧,需搜索两结点

      4、对应的单链表,没有邻接矩阵方便。,4 图的邻接表数据类型描述,图的邻接表数据类型描述如下: #define MAXN 50 /*MAXN表示图中最大顶点数*/ typedef struct e_node /定义边结点的结构 int adjvex; int weight; /边的信息 struct e_node *next ;E_NODE; /指向邻接点的指针 typedef struct v_node /定义邻接表的表头类型 int vertex; /顶点信息 E_NODE *link; /指向“边表”的指针 V_NODE; V_NODE headMAXN;,讨论:邻接表与邻接矩阵有什么异同之处?,1. 联系:邻接表中每个链表对应于邻接矩阵中的一行,链表中结点个数等于一行中非零元素的个数。 2. 区别: 对于任一确定的无向图,邻接矩阵是唯一的(行列号与顶点编号一致),但邻接表不唯一(链接次序与顶点编号无关)。 邻接矩阵的空间复杂度为O(n2),而邻接表的空间复杂度为O(n+e)。 3. 用途:邻接矩阵多用于稠密图的存储(e接近n(n-1)/2);而邻接表多用于稀疏图的存储(en2),有

      5、向图的十字链表表示法,弧结点: typedef struct arcnode int tailvex, headvex; /弧尾、弧头在表头数组中位置 struct arcnode *hlink;/指向弧头相同的下一条弧 struct arcnode *tlink; /指向弧尾相同的下一条弧 AD;,顶点结点: typedef struct dnode int data; /存与顶点有关信息 struct arcnode *firstin;/指向以该顶点为弧头的第一个弧结点 struct arcnode *firstout; /指向以该顶点为弧尾的第一个弧结点 DD; DD gM; /g0不用,无向图的邻接多重表表示法,顶点结点: typedef struct dnode int data; /存与顶点有关的信息 struct node *firstedge; /指向第一条依附于该顶点的边 DD; DD gaM; /ga0不用,边结点: typedef struct node int mark; /标志域 int ivex, jvex; /该边依附的两个顶点在表头数组中位置 struct node *ilink, *jlink; /分别指向依附于ivex和jvex的下一条边 JD;,作业,已知如图所示的有向图,请给出该图的: (1) 每个顶点的入/出度; (2) 邻接矩阵; (3) 邻接表; (4) 逆邻接表; (5) 十字链表.,

      《武汉理工大学-信息工程学院-数据结构-ppt-课件ch07-1-图1-图的定义和存储》由会员F****n分享,可在线阅读,更多相关《武汉理工大学-信息工程学院-数据结构-ppt-课件ch07-1-图1-图的定义和存储》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.