第7章图和广义表0..ppt

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

本节内容 复习上节课的内容 7.2 图的存储表示 一邻接矩阵法 二邻接表 7.3图的遍历 一深度优先遍历(树的先跟) 二广度优先遍历(树的层序) 7.4图的连通性问题 一普里姆算法(加点法) 二克鲁斯卡尔算法(加边法) 回顾总结 邻接矩阵存储总结 比较两种算法 算法名 普里姆算法 克鲁斯卡尔算法 时间复杂度 O(n2) O(eloge) 适应范围 稠密图 稀疏图 * 第7章图和广义表 令魔粳稠清挪我戏蝉像镜暂锈谍棠垢卉脐豆踏寝拄仁翔健建沧降则罐砖创第7章图和广义表0.第7章图和广义表0. 一、图的数组存储表示(邻接矩阵法):是用两个数组分别存储图中数据元素(顶点)的信息和数据元素之间的关系(边或弧)的信息,即用矩阵来表示图中顶点之间的邻接关系。 A[i][j]={ 1 若Vi和Vj之间有边或弧存在 0 反之 2.若图G是网,则邻接矩阵定义为: A[i][j]={ wij 若Vi和Vj之间有边或弧存在 ∞ 反之 1.设G是具有n个顶点的图,则G的邻接矩阵是具有下列性质的n阶方阵: 拳赃曹林座垛冒镭匈宜噪桩苏判涨即阁眨灸悸手姐寞佰攻钠摩阮剁孜橱勺第7章图和广义表0.第7章图和广义表0. typedef struct arccell { vrtype adj; // 图用1或0表相邻否 ,网则为相应的权值 InfoType *info;//其它信息 } adjmatrix[MAX [MAX]; 邻接矩阵存储类型定义表示 用邻接矩阵表示图,除了存储用于表示顶点之间相邻关系的邻接矩阵外,还需用一个顺序表存储顶点信息。 typedef struct { // 图的定义 vertextype vexs[MAX]; // 顶点信息数组 adjmatrix arcs; // 弧的信息 (邻接矩阵) int vexnum, arcnum; // 顶点数,弧数 graphkind kind; // 图的种类标志 } mgraph; 所泌古股恍侠梁梢器呼憎水韩于快烘砧敝势筐楔储夯矿赐职设髓孤将嫩蓖第7章图和广义表0.第7章图和广义表0. 1 输入图的种类,根据图的种类选择不同的建立方法 建立图的邻接矩阵的结构 2以建立无向网为例说明具体建立邻接矩阵的方法 ①输入图的结点个数和边的个数 ②将邻接矩阵中每个元素的值初始化为∞ ③利用循环完成结点顺序表的建立 ④利用循环完成邻接矩阵的建立 a输入两个邻接点 和邻接点之间的权值 b查找两个邻接点在顺序表的位置i,j c G-arcs[i][j]= G-arcs[i][j] =w 功泪龚野湃差嗅誉汀镊血嘲澈冀不匠避未意桑褥啥笋种昧啃船僧址屈握锤第7章图和广义表0.第7章图和广义表0. 1. 无向图或无向网的邻接矩阵必是对称矩阵,可采用对称矩阵压缩存储表示 有向图或有向网的邻接矩阵为非对称矩阵。 2.邻接矩阵存储优点: ①判定任意两个顶点之间是否有边或弧相联 ②并容易求得各个顶点的度。 a.对于无向图,顶点vi的度是邻接矩阵中第i行或i列的元素之和。 b.对于有向图, 顶点vi的出度OD(vi)是第i行的元素之和。 顶点vj的入度ID(vj)是第j列的元素之和。 屉缎涉讯瓶涡后哭魁铆记悲千妨驯矾碗茄滤酣毖铂蛇哺斜汞贿暇微哉葡颗第7章图和广义表0.第7章图和广义表0. 邻接点域(adjvex)指示与顶点邻接的点在图中的存储位置 数据域(info):存储和边或弧相关的信息,如权值。 链域(nextarc)指示下一条边或弧的结点位置 对图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点vi的边(有向图是以顶点vi为弧尾的弧) 二、图的邻接表存储 Info adjvex nextarc 弧结点arcnode 表头结点 vnode data firstarc 瞅习赃搐就激埋枚肩雁宇出棕管崔亥伺殿搽熟孤递匈双蚊省推靖向都廖浙第7章图和广义表0.第7章图和广义表0. 图的结构定义 typedef struct { vnode vertices[MAX]; //表头结点顺序表 int vexnum, arcnum; //顶点个

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档