ImageVerifierCode 换一换
格式:PPT , 页数:15 ,大小:296.50KB ,
资源ID:6943562      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6943562.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C_chap_7.1 图及存储结构new.ppt)为本站会员(j35w19)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

C_chap_7.1 图及存储结构new.ppt

1、第七章 图 7.1 图的定义与术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图及其应用 7.6 最短路径,7.1 图的定义与术语1. 定义 图: Graph= ( V, R )其中: V= x| x dataobject x 是数据元素,在图中称为顶点。R= VR VR= | P( x, y )( x, y V ) VR 为顶点间关系的集合,为一条弧;x 为弧尾,y 为弧头;有向图。 为图中的一条边;x, y 称为终端点。无向图。,例:,邻接点:在无向图中 x, y 互为邻接点。 在有向图中,y 邻接自 x,x邻接到y.,顶点的度:无向图中,与v关联的边

2、数, 有向图中,顶点有出度与入度之分。,路径: 无向图 顶点序列;有向图中,顶点序列中的边必须是有向的。,边的权:表示从一个顶点到另一个顶点的距离或耗费。,子图: 图的一部分。,连通性:u ,v 之间有路径, u, v 之间是连通的;在图 G 中,任意的 vi,vj V,有 vi,vj 连通,图 G 是连通的,连通分量; 图中的极大连通子图。,生成树;图中包含全部顶点的极小连通子图。,结构的建立和销毁,插入或删除顶点,对邻接点的操作,对顶点的访问操作,遍历,插入和删除弧,基本操作,对邻接点的操作,FirstAdjVex(G, v); / 返回 v 的“第一个邻接点” 。若 /该顶点在 G 中没

3、有邻接点,则返回“空”。,NextAdjVex(G, v, w); / 返回 v 的(相对于 w 的) “下一个邻接 点”。若 w 是 v 的最后一个邻接点,则 返回“空”。,遍 历,DFSTraverse(G, v, Visit(); /从顶点v起深度优先遍历图G,并对每 /个顶点调用函数Visit一次且仅一次。,BFSTraverse(G, v, Visit(); /从顶点v起广度优先遍历图G,并对每 /个顶点调用函数Visit一次且仅一次。,7.2 图的存储结构,一、图的数组(邻接矩阵)存储表示,二、图的邻接表存储表示,三、有向图的十字链表存储表示,四、无向图的邻接多重表存储表示,7.2

4、.1 数组表示法,用两个数组分别表示顶点信息及边的信息。,0 1 0 1 0 1 0 1 0 1 A1= 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0,0 1 1 0 0 0 0 0 A2= 0 0 0 1 1 0 0 0,定义:矩阵的元素为,typedef struct ArcCell / 弧的定义VRType adj; / VRType是顶点关系类型。/ 对无权图,用1或0表示相邻否;/ 对带权图,则为权值类型。InfoType *info; / 该弧相关信息的指针 ArcCell, AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM;,typedef

5、 struct / 图的定义VertexType / 顶点信息vexsMAX_VERTEX_NUM; AdjMatrix arcs; / 弧的信息 int vexnum, arcnum; / 顶点数,弧数 GraphKind kind; / 图的种类标志 MGraph;,#define INFINITY INT_max /最大值 #define MAX_VERTEX_NUM /最大顶点个数 typedef enum DG,DN,UDG,UDN GraphKind; /有向图,有向网,无向图,无向网,网的邻接矩阵定义为:, 1 0 30 100 5 50 A= 10 20 60 ,7.2.2 邻

6、接表 1)定义: 邻接表是图的一种链式存储结构。方法是对图中的每一个顶点建立一个依附于该顶点的边的表。而表头结点用一顺序结构(向量)的形式存储。,2)数据结构,typedef struct ArcNode int adjvex; / 该弧所指向的顶点的位置struct ArcNode *nextarc; / 指向下一条弧的指针InfoType *info; / 该弧相关信息的指针 ArcNode;,typedef struct VNode VertexType data; / 顶点信息ArcNode *firstarc; / 指向第一条依附该顶点的弧 VNode, AdjListMAX_VER

7、TEX_NUM;,3)无向图的邻接表,4) 有向图的邻接表,在邻接表及逆邻接表中,可得出图中结点的度,出度,入度,图中的边数等,typedef struct AdjList vertices;int vexnum, arcnum; int kind; / 图的种类标志 ALGraph;,图的结构定义(邻接表),7.2.3 十字链表 1) 定义 十字链表是有向图的一种存储结构。 是将有向图的邻接表与逆邻接表合并的结果。方法; 有向图中的每条边及每个顶点分别用一个结点表示。,2)数据结构,typedef struct ArcBox / 弧的结构表示int tailvex, headvex; Inf

8、oType *info;struct ArcBox *hlink, *tlink; ArcBox;,typedef struct VexNode / 顶点的结构表示VertexType data;ArcBox *firstin, *firstout; VexNode;,typedef struct VexNode xlistMAX_VERTEX_NUM; / 顶点结点(表头向量) int vexnum, arcnum;/有向图的当前顶点数和弧数 OLGraph;,7.2.4 邻接多重表,无向图的另一种链式存储结构,主要是针对邻接表中一条边存放两次的问题。邻接多重表中,每条边用一个结点表示,顶点

9、仍然用向量组的形式存放。,头结点,typedef struct Ebox VisitIf mark; / 访问标记int ivex, jvex; /该边依附的两个顶点的位置struct EBox *ilink, *jlink; InfoType *info; / 该边信息指针 EBox;,边的结构表示,顶点的结构表示,typedef struct VexBox VertexType data;EBox *firstedge; / 指向第一条依附该顶点的边 VexBox;,typedef struct / 邻接多重表VexBox adjmulistMAX_VERTEX_NUM;int vexnum, edgenum; AMLGraph;,无向图的结构表示,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报