网站大量收购独家精品文档,联系QQ:2885784924

(算法几何和设计)图基本的 概念、图遍历算法.ppt

(算法几何和设计)图基本的 概念、图遍历算法.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

您可能关注的文档

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档