- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(算法几何和设计)图基本的 概念、图遍历算法.ppt
图基本概念、图遍历算法 * 主要内容 图的基本概念 图的相邻矩阵及邻接表的表示方法 图抽象数据类型 图的周游方法 求图的最小生成树(林) * 图的基本概念 反映连通关系 反映连通属性 应用:约束求解(二维参数化草图、三维装配),三维模型特征识别,三维模型的B_Rep表达(点、线、面); * 图与其他数据结构的关系 线性结构:唯一前驱,唯一后继,线性关系 树形结构:唯一前驱,多个后继,层次关系 图形结构:多对多、任意,网状关系 图结构中结点(图中通常称为顶点)的前驱和后继结点个数不再限制,即结点之间的关系是任意的 图是更复杂的非线性结构。 * 图由顶点(vertex)集合和边(edge)集合E组成, 记为G=(V,E)。 每条边就是一个顶点的偶对,所以E也就是V上的一个二元关系。 例如: V = { a,b,c,d}; E = {a,b, a,d, c,d, d,a} 图的形式化定义 a b c d * ‘度’ 的定义 关联:由一个顶点发出的边构成与该定点的一个关联。 顶点的度:与该顶点关联的所有的边或弧的数目。 (邻接点的个数定义为顶点的度。) 入度:(仅对有向图)以该顶点为头的弧数。 V3 V1 V2 V4 V5 V6 * 路径 无向图中的顶点序列v1,v2,… ,vk,若(vi,vi+1)?E( i=1,2,…k-1), v =v1, u =vk, 则称该序列是从顶点v到顶点u的路径;若v=u,则称该序列为回路; 有向图中的顶点序列v1,v2,… ,vk, 若vi,vi+1?E ( i=1,2,…k-1), v =v1, u =vk, 则称该序列是从顶点v到顶点u的路径;若v=u,则称该序列为回路; 路径上边或弧的数目称为该路径的路径长度。 * 连通图 在无(有)向图G =( V, E )中,若对任何两个不同顶点v、u都存在从v到u的路径,则称G是连通图。 V5 V1 V2 V4 V3 连通图 V3 V1 V2 V4 V5 V6 非连通图 * 图的其他一些相关概念 子图: 对于 G=(V,E) , G’ =(V’,E’) 如果有 V’ in V E’ in E, 则称G’为G的子图。 带权图(网络): 每条边加上权值信息。带权图也常被称为‘加权图’。带权图中的路径通常定义为路径之上所有边的权值总和。 B A C D 6 3 2 1 5 4 * 图的存储结构1 —— 邻接矩阵表示法 设图 G = (V,E) 一个有 n个顶点的图 , 图的邻接矩阵是一个二维数组 edge[n][n],定义: * vexs1[]={‘a’, ‘b’, ‘c’, ‘d’} ; vexs2[]={v1,v2,v3,v4,v5} 假定不存在 指向自身的弧 * 邻接矩阵表示法的特点 (1)无向图的关系矩阵一定是一对称矩阵。(2)无向图的关系矩阵的第i行(或第i列)非零元素个数为第i个顶点的度D(vi)。(3)?有向图的关系矩阵的第i行非零元素个数为第i个顶点的出度OD(vi),第i列非零元素个数就是第i个顶点的入度ID(vi)。(4) 从图的邻接矩阵表示,很容易确定图中任意两个顶点之间是否有边相连。添加或删除边也很方便。 * 如果G是带权的图,wij是边(vi,vj)或 vi,vj的权,则其关系矩阵定义为∶ 带权图的邻接矩阵表示 * 邻接矩阵表示法结构定义 typedef char VexType; typedef float AdjType; typedef struct { int n; /* 图的顶点个数 */ VexType *vexs; /* 顶点信息 */ AdjType *arcs[ ]; /* 边信息,二维数组 */ }GraphMatrix; * 带权图的邻接矩阵表示 用来存顶点信息 * 带权图的邻接矩阵表示 矩阵初始化: * 邻接矩阵操作函数 * 邻接表表示法—— 对图中每个顶点建立一个单链表, 第i个单链表中的结点表示依附于该顶点Vi的边(或弧) * 无向图邻接表 * struct EdgeNode; typedef struct EdgeNode * PEdgeNode; //edgeNode的指针 typedef struct EdgeNode * EdgeList; //edgeNode 链表指针 struct EdgeNode{ int endvex; /* 相邻顶点在顶点表中下标 */ AdjT
您可能关注的文档
- (电磁学课件)3-3电场强度和 与电势梯度.ppt
- (电磁学课件)相关复习-电磁学.ppt
- (病历质控培训知识班课件)住院病案首页填写与质控.ppt
- (病历质控培训知识班课件)病案质控与法律.ppt
- (病原免疫实验课件)实验三免疫标记技术知识.ppt
- (病原生物和 与免疫学基础)第6章免疫学应用.ppt
- (病原生物和 与免疫学实验)免疫学探索性实验.ppt
- (病原生物和 与免疫学实验)免疫实验二:沉淀反应和 与溶血试验-陈玮琳、翁莉霞.ppt
- (病原生物和 与免疫学实验)实验二基础培养基、细菌接种及 其常用生化反应.ppt
- (病原生物和 与免疫学实验)实验六白喉杆菌、厌氧菌、分枝杆菌病毒及其它微生物.ppt
- 2023咸阳职业技术学院招聘笔试真题参考答案详解.docx
- 2023四川化工职业技术学院招聘笔试真题及参考答案详解.docx
- 2023哈尔滨职业技术学院招聘笔试真题及参考答案详解.docx
- 2023商洛职业技术学院招聘笔试真题及答案详解1套.docx
- 2023呼伦贝尔职业技术学院招聘笔试真题参考答案详解.docx
- 2023南阳农业职业学院招聘笔试真题参考答案详解.docx
- 2023天津公安警官职业学院招聘笔试真题带答案详解.docx
- 2023年上海电机学院招聘笔试真题参考答案详解.docx
- 2023年四川艺术职业学院招聘笔试真题参考答案详解.docx
- 2023安徽体育运动职业技术学院招聘笔试真题及答案详解一套.docx
文档评论(0)