- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图2-烟台南山学院
二、邻接表(链式)表示法 例1:无向图的邻接表 例3:已知某网的邻接(出边)表,请画出该网络。 邻接表存储法的特点: 讨论:邻接表与邻接矩阵有什么异同之处? 图的邻接表存储表示(参见教材P163) 三、十字链表(适用于有向图)四、邻接多重表(适用于无向图) 三、十字链表 十字链表存储结构描述: 例:画出有向图的十字链表。 四、邻接多重表(自学) 例:画出无向图的邻接多重表 7.3 图的遍历 一、深度优先搜索( DFS ) 深度优先搜索(遍历)步骤: 讨论1:计算机如何实现DFS? 讨论2: DFS算法如何编程? 讨论3:在图的邻接表中如何进行DFS? 讨论4: 邻接表的DFS算法如何编程? DFS 算法效率分析: 二、广度优先搜索( BFS ) 广度优先搜索(遍历)步骤: 讨论1:计算机如何实现BFS? 讨论2: BFS算法如何编程? BFS 算法效率分析: * * 数据结构与算法Data Structure Algorithms 烟台南山学院信息科技学院 数据结构与算法教学组 对每个顶点vi 建立一个单链表,把与vi有关联的边的信息(即度或出度边)链接起来,表中每个结点都设为3个域; 每个单链表还应当附设一个头结点(设为2个域),存vi信息; info nextarc adjvex firstarc data 表结点 头结点 邻接点域,表示vi一个邻接点的位置 链域,指向vi下一个边或弧的结点 数据域,与边有关信息(如权值) 数据域,存储顶点vi 信息 链域,指向单链表的第一个结点 每个单链表的头结点另外用顺序存储结构存储。 v1 v2 v3 v5 v4 v4 邻接表 4 3 2 1 0 ^ 1 3 3 4 ^ 1 4 2 ^ 0 例2:有向图的邻接表 v1 v2 v3 v4 V4 V3 ^ V2 V1 2 ^ 3 ^ 0 ^ 1 邻接表(出边) V4 V3 V2 V1 ^ 3 ^ 0 ^ 2 ^ 0 逆邻接表(入边) 注:邻接表不唯一,因各个边结点的链入顺序是任意的。 v5 v4 v3 v2 v1 2 3 ^ 1 4 2 ^ 0 80 64 1 2 5 当邻接表的存储结构形成后,图便唯一确定! 分析1: 对于n个顶点e条边的无向图,邻接表中除了n个头结点外,只有2e个表结点,空间效率为O(n+2e)。 若是稀疏图(en2),则比邻接矩阵表示法O(n2)省空间。 分析2: 在有向图中,邻接表中除了n个头结点外,只有e个表结点,空间效率为O(n+e)。若是稀疏图,则比邻接矩阵表示法合适。 —它其实是对邻接矩阵法的一种改进 怎样计算无向图顶点的度? 邻接表的缺点: 怎样计算有向图顶点的出度? 怎样计算有向图顶点的入度? 怎样计算有向图顶点Vi的度: 需遍历全表 邻接表的优点: TD(Vi)=单链表中链接的结点个数 OD(Vi)=单链出边表中链接的结点数 I D( Vi ) =邻接点为Vi的弧个数 TD(Vi) = OD( Vi ) + I D( Vi ) 空间效率高;容易寻找顶点的邻接点; 判断两顶点间是否有边或弧,需搜索两结点对应的单链表,没有邻接矩阵方便。 1. 联系:邻接表中每个链表对应于邻接矩阵中的一行,链表中结点个数等于一行中非零元素的个数。 2. 区别: ① 对于任一确定的无向图,邻接矩阵是唯一的(行列号与顶点编号一致),但邻接表不唯一(链接次序与顶点编号无关)。 ② 邻接矩阵的空间复杂度为O(n2),而邻接表的空间复杂度为O(n+e)。 3. 用途:邻接矩阵多用于稠密图的存储(e接近n(n-1)/2);而邻接表多用于稀疏图的存储(en2) #define MAX_VERTEX_NUM 20 //假设的最大顶点数 Typedef struct ArcNode { int adjvex; //该弧所指向的顶点位置 struct ArcNode *nextarcs; //指向下一条弧的指针 InfoArc *info; //该弧相关信息的指针 } ArcNode; Typedef struct VNode{ //顶点结构 VertexType data; //顶点信息 ArcNode * firstarc; //指向依附该顶点的第一条弧的指针 }VNode, AdjList[ MAX_VERTEX_NUM ]; Typedef struct { //图结构 AdjList vertics ; //应包含
您可能关注的文档
- 1.公开课课件(解直角三角形).-台州实验中学.ppt
- 证明直角三角形全等的.ppt
- 1.2.1直角三角形判定.ppt.ppt
- 11.1畢氏定理及其證明.ppt
- 轴对称型全等形研究.doc
- 2、过程与方法目标.doc
- 勾股定理直角三角形两直角边的平方和等于斜边的平方。勾股定理如果.ppt
- 18.1勾股定理(第4课时).ppt
- 赵真金勾股定理.ppt-岳阳市十中.ppt
- 华师大版八年级勾股定理课件.ppt
- 2025年江西省时事政治考试试卷带解析必背(有一套).docx
- 2025年河南省公务员考试时事政治考试试卷带解析附完整答案【全优】.docx
- 2025年河南省公务员考试时事政治考试试卷带解析及完整答案【各地真题】.docx
- 2025年辽宁省公务员考试时事政治考试试卷带解析附完整答案【夺冠】.docx
- 2025年河南省时事政治考试试卷带解析含答案【预热题】.docx
- 江西昌河航空工业有限公司校园招聘模拟试题附带答案详解及参考答案1套.docx
- 2025年江西省时事政治考试试卷带解析必背(综合题).docx
- 2024年案件风险防控学习心得体会范例(4篇) .pdf
- 2025年江西省时事政治考试试卷带解析(全国通用).docx
- 2024年竣工验收管理制度(三篇) .pdf
文档评论(0)