电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

内蒙古大学《算法与数据结构》课件第6章图

170页
  • 卖家[上传人]:东***
  • 文档编号:270894213
  • 上传时间:2022-03-27
  • 文档格式:PDF
  • 文档大小:25.56MB
  • / 170 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1 2: / /弧弧 3v无向图无向图无向图无向图G是由两个集合是由两个集合V(G)和和E(G)组成的组成的其中:其中:V(G)是顶点的非空有限集是顶点的非空有限集;E(G)是边的有限集是边的有限集 合,边是顶点的无序对合,边是顶点的无序对, 记为记为(v,w)或或(w,v), 并且(并且(v,w)=(w,v)v有向图有向图有向图有向图G是由两个集合是由两个集合V(G)和和E(G)组成的组成的 其中:其中:V(G)是顶点的非空有限集是顶点的非空有限集;E(G)是有向边是有向边(也称也称 弧弧)的有限集合,弧是顶点的有序对,记为)的有限集合,弧是顶点的有序对,记为 ,v,w是顶点,是顶点,v为弧尾为弧尾(或始点或始点), w为弧头为弧头(终点终点). 4例例1245136G2图图G2:V(G2)=1,2,3,4,5,6 E(G2)=, , , , , , 例例2157324G16图图G1:V(G1)=1,2,3,4,5,6,7E(G1)=(1,2), (1,3), (2,3), (2,4),(2,5), (5,6), (5,7)5本章只讨论本章只讨论简单图简单图, ,即有两类图形不在本章

      2、讨论之列:即有两类图形不在本章讨论之列:6v(无向无向)完全图完全图(Completed graph) : n个顶点的有个顶点的有n(n-1)/2条边的简单条边的简单无向图无向图.v有向完全图有向完全图: n个顶点的有个顶点的有n(n-1)条弧的简单条弧的简单有向图有向图. v稀疏图稀疏图(sparse graph): 边或弧很少的图,通常边数边或弧很少的图,通常边数enlog2nv稠密图稠密图(Dense graph): 无向图中,边数接近无向图中,边数接近有向图中,弧数接近有向图中,弧数接近7有向网有向网v权权与图的边或弧相关的数与图的边或弧相关的数.v网网带权的无向图称为无向网带权的无向图称为无向网; 带权的带权的有向有向图称为有向网图称为有向网;无向网无向网8v子图子图已知图已知图G(V,E)和图和图G(V,E), 若若满足:满足:V V且且 E E 则称则称G为为G的子图的子图9关联关联: :10v顶点的度(与树中结点的度不同)顶点的度(与树中结点的度不同):无向图中,顶点无向图中,顶点v的度是与该顶点的度是与该顶点v关联的边数关联的边数, 记作记作TD(v)有向图中,顶点有

      3、向图中,顶点v的度分成入度与出度的度分成入度与出度入度:以该顶点入度:以该顶点v为终头的弧的数目为终头的弧的数目,记为记为ID(v)出度:以该顶点出度:以该顶点v为始点的弧的数目为始点的弧的数目,记为记为OD(v)一个顶点一个顶点v的度等于该顶点的入度与出度之和的度等于该顶点的入度与出度之和,即即TD(v)=OD(v)+ID(v)nii)v(TDe12111v(有向有向)路径路径顶点的序列顶点的序列(Vi0,Vi1 , , Vik), 满足满足(Vij-1,Vij) E 或或 E,(1 j k)v路径长度路径长度沿路径边的数目或沿路径各边权值之和。沿路径边的数目或沿路径各边权值之和。v简单路径简单路径序列中顶点不重复出现的路径。序列中顶点不重复出现的路径。v回路回路第一个顶点和最后一个顶点相同的路径。第一个顶点和最后一个顶点相同的路径。v简单回路简单回路除了第一个顶点和最后一个顶点外,其除了第一个顶点和最后一个顶点外,其 余顶点不重复出现的回路。余顶点不重复出现的回路。12V0V1V3V2V0V1V3V0V1V2V0V1V3V013ABCDEHMFGIJLK无向图无向图G的三个连通分量

      4、的三个连通分量ABCDEFGIJLHMK无向图无向图G14强连通图强连通图非强连通图非强连通图G非强连通图非强连通图G两两个个 强强连通分量连通分量15v生成树生成树:回路回路. .ABCDEHM无向图无向图G ABCDEHM无向图无向图G的生成树的生成树 16v生成森林生成森林:FGIJLK生成森林生成森林ABCDEFGIJLHMK无向图无向图GABCDEHM17class Graph /图是由一个顶点的非空有限集合和一个边或弧的集合组成。图是由一个顶点的非空有限集合和一个边或弧的集合组成。 public: Graph ( ); /建立一个空图建立一个空图 void InsertVertex ( Type & vertex ); / 在图中插入一个顶点在图中插入一个顶点vertex void InsertEdge(int v1,int v2 ); / 在图中插入一条边在图中插入一条边(v1,v2)或一条弧或一条弧 void RemoveVertex ( int v ); / 删除一个顶点删除一个顶点v void RemoveEdge ( int v1,int v2 ); /删除一条边

      5、删除一条边(v1,v2)或一条弧或一条弧 int IsEmpty ( ); / 判断图中是否有顶点,若无则返回判断图中是否有顶点,若无则返回1,否则返回,否则返回0 DataType GetWeight ( int v1,int v2 ); / 函数返回边函数返回边(v1,v2)或弧或弧的权值的权值 int GetFirstNeighbor ( int v ); / 函数返回顶点位置函数返回顶点位置v的第一个邻接顶点的位置,若找不到,则函的第一个邻接顶点的位置,若找不到,则函 / 数返回数返回-1 int GetNextNeighbor ( int v1,int v2 ); / 函数返回顶点位置函数返回顶点位置v1相对于相对于v2的下一个邻接顶点的位置的下一个邻接顶点的位置,若找不到,若找不到, /则函数返回则函数返回-1181 若若(vi,vj)E或或 E0 反之反之192021Aij= 0 i=j 其它其它 wij 若若(vi,vj)E 或或 E 22class AdjMatrix / 非带权图非带权图 int n; / 顶点的个数顶点的个数 int matrixMaxSize M

      6、axSize; / 邻接矩阵邻接矩阵 public: AdjMatrix(int m) n=m; ; / AdjMatrix class AdjMatrix / 带权图带权图 const int INFINITE=; int n; /顶点的个数顶点的个数 float matrixMaxSizeMaxSize; / 邻接矩阵邻接矩阵 public: AdjMatrix(int m) n=m; 23 void CreateGraph() ; / 建立一个图建立一个图G的邻接矩阵的邻接矩阵matrix void LocateVex(v) ; / 确定图确定图G中顶点中顶点v在顶点中的位置在顶点中的位置 void GetVex(v); / 得到图得到图G中顶点中顶点v的值的值 int FirstAdjVex(v); / 确定图确定图G中顶点出中顶点出v的第一个邻接点的第一个邻接点 int NextAdjVex(v,w); / 确定图确定图G中顶点出中顶点出v相对于相对于w的下一个邻接点的下一个邻接点 void DFSTraverse(int v); / 从顶点从顶点v开始对图进行深度优先遍历开

      7、始对图进行深度优先遍历 void BFSTraverse(int v); / 从顶点从顶点v开始对图进行广度优先遍历开始对图进行广度优先遍历; / AdjGraph24假定图以邻接矩阵假定图以邻接矩阵G存储存储:int AdjMatrix :FirstAdjVex(int v) int w=0; while(wn & matrixvw=0)w+; if(wn) return w; else -1; 算法的时间复杂度为:算法的时间复杂度为:(n)25假定图以邻接矩阵假定图以邻接矩阵G存储存储 int NextAdjVex(int v,int w) u=w+1; while(un & matrixvu=0)u+; if(ufirstout) /书上没有书上没有 return gheadv-firstout.adjvex; else return -1; /书上没有书上没有/ FirstAdjVex转转int NextAdjVex(int v,int w) p=gheadv-firstout;while (p & p-adjvex!=w) p=p-link;if (!p | !p-link)

      8、 return -1; /书上为书上为0else return p-link-adjvex;/ NextAdjVex336.2.3 邻接多重表表示法邻接多重表表示法 邻接多重表是只用来存储无向图的另一种存储结构邻接多重表是只用来存储无向图的另一种存储结构 . 在邻接多重表表示法中每一条边只对应一个边结点在邻接多重表表示法中每一条边只对应一个边结点(EdgeNode),每一个顶点也对应一个顶点结点),每一个顶点也对应一个顶点结点(VNode)。)。在边结点中,每一条边对应的边结点有五个域:在边结点中,每一条边对应的边结点有五个域:EdgeNode mark vex1 vex2 link1 link2 34其中:其中:mark是标志域,标记该边是否被遍历是标志域,标记该边是否被遍历 过;过;vex1与与vex2是该边所关联的两个顶点在图中的序号是该边所关联的两个顶点在图中的序号;link1是指向下一条与顶点是指向下一条与顶点vex1相关联的边;相关联的边;link2是是指向下一条与顶点指向下一条与顶点vex2相关联的边。相关联的边。 其中:其中:data是存放该顶点相关信息;是存放该顶点相

      9、关信息;firstEdge是指是指向第一条与顶点相关联的边。向第一条与顶点相关联的边。VNode data firstEdge 35邻接多重表类型说明如下:邻接多重表类型说明如下:class EdgeNode / 边结点边结点 Tag mark; /访问标记访问标记 int vex1,vex2; / 该边所指向的顶点的序号该边所指向的顶点的序号 EdgeNode *link1,*link2; / 指向下一条边的指针指向下一条边的指针 public: EdgeNode(int adj) ;/ EdgeNodeclass VNode / 顶头结点顶头结点DataType data; / 顶点的信息顶点的信息EdgeNode *firstEdge / 指向与该顶点所关联的一条的指针指向与该顶点所关联的一条的指针36public: VNode (DataType e) data=e; firstEdge=NULL;/ VNodeclass MulistGragh /邻接多重表邻接多重表 int n; / 顶点的个数顶点的个数Node VheadMaxSize; public: MulistGr

      10、agh (int m) n=m; void CreateGraph(g ) ; / 建立图建立图gvoid LocateVex(u) ; / 得到顶点得到顶点v在图中的序号在图中的序号 void GetVex(v) ; / 得到顶点得到顶点v的值的值void PutVex(v,value) ; / 把把v的值赋为的值赋为value void FirstAdjVex(v) ; / 得到顶点得到顶点v的第一个邻接顶点的第一个邻接顶点 void NextAdjVex(v, w); / 确定图确定图G中顶点出中顶点出v相对于相对于w的下一个邻接点的下一个邻接点37void DFSTraverse(int v); / 从顶点从顶点v开始对图进行深度优先遍历开始对图进行深度优先遍历void BFSTraverse(int v); / 从顶点从顶点v开始对图进行广度优先遍历开始对图进行广度优先遍历; /MulistGragh386.2.4 十字链表十字链表 十字链表是只用来存储有向图的另一种存储结构。可十字链表是只用来存储有向图的另一种存储结构。可以把十字链表看成是将有向图的邻接表和逆邻接表结以把十

      《内蒙古大学《算法与数据结构》课件第6章图》由会员东***分享,可在线阅读,更多相关《内蒙古大学《算法与数据结构》课件第6章图》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
    点击查看更多
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.