- 1、本文档共95页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4数据结构-图
The End * 单项选择题 单项选择题 例3 (2009年全国统考真题)下列关于无向连通图特性的叙述中,正确的是()。 单项选择题 单项选择题 单项选择题 综合应用题 例1 请回答下列关于图的一些问题 综合应用题 综合应用题 综合应用题 例3【解答】续 综合应用题 具体程序在下页。 例4程序 综合应用题 例6(2009年全国统考真题)带权图(权值非空,表示边链接的两个顶点间的距离)的最短路径问题是找出从出事顶点到目标顶点之间的一条最短路径,假设从初始顶点之间存在路径。现有一种解决该问题的方法; 同步练习 单选填空题 综合应用题 单项选择题 单项选择题 单项选择题 3. 对于具有e条边的无向图,它的邻接表中有(1)个边结点。一个有n个顶点和n条边的无向图一定是(2)的。 (1)A.e-1 B.e C.2(e-1) D.2e (2)A.重连通的B.不连通的C.无环的D.有环的 【答案】(1)D(2)D。在一个具有e条边的无向图的邻接表中,若顶点vi与顶点vj之间有边,在顶点vi的边链表和顶点vj的边链表中都有这条边的边结点,所以总共有2e个边结点。最后,如果一个无向图有n个顶点和n-1边可以使它连通但没有环,但再加一条边,在不考虑重边的情况下,就会构成环。 单项选择题 单项选择题 单项选择题 单项选择题 单项选择题 单项选择题 综合应用题 第二题程序 最小生成树 Prim算法 从连通网络N={V,E}中的某一顶点u0出发,选择与它关联的具有最小权值的边(u0,v),将其定点加入到生成树的顶点集合U中。以后每一步从一个顶点在U中,而另一个顶点不在U中的各条边当中选择权值最小的边(u,v)把它的顶点加入到集合U中,这意味着边(u,v)也加入到生成树的边集合中。如此继续下去,直到网络中的所有顶点都加入到生成树顶点集合U中为止。 最小生成树 Prim算法 Prim算法使用了一个小根推按照边的权值存储图中当前一个端点在生成树中,一个端点不在生成树的边,每次从小根堆的堆顶可选出其中权值最小的边(u,v),将其从堆中退出,加入生成树中,然后将新出现的所有一个端点在生成树中,一个端点不在生成树的边都插入小根堆中。下一轮迭代中,下一条满足要求的权值最小的边又上升到小根堆的堆顶。如此重复n-1次,最后建立起该图的最小生成树。 最小生成树 Prim算法 最小生成树的类定义 最小生成树 最小生成树 Prim算法 该算法的迭代次数为O(n),每次迭代将平均e/n条边插入最小堆中,e条边从堆中删除,堆的插入和删除操作时间复杂性均为O(log2e),则总的计算时间为O(elog2e)。 最小生成树 Kruskal算法 设有一个连通网络N={V,E},顶点集合V中有n个顶点。最初先构造一个包括全部n个顶点和0条边的森林F={T0,T1, …,Tn-1},以后每一步向F中加入一条边,它应该是一端在F的某一棵树Ti上,而另一端不在Ti上的所有边中具有最小权值的边。由于边的加入,使F中的某两棵树合并为一颗,树的棵数减一。经过n-1步,最终得到一棵有n-1条边的各边权值总和达到最小的最小生成树。 最小生成树 Kruskal算法 Kruskal算法在求解过程中使用了小根堆和并查集。首先,利用小根堆来存放E中的所有的边。在构造最小生成树的过程中,尚未处理的边存放在小根堆中。通过并查集的Find算法,可以很快地判断任意一条边的两个端点是否来自同一个连通分量。若是,则舍去这条边;否则,将此边加入到生成树的边集合T中,并通过并查集的Union运算,将两个端点个子所处的两个连通分量合二为一。随着T中的边不断增多,连通分量也逐步合并,直到最后整体构成一个连通分量为止。 最小生成树 Kruskal算法 如果基于邻接矩阵实现图的存储,则在建立小跟堆时需要检测图的邻接矩阵,这需要O(n2)的时间。此外需要将E条边组成初始的小根堆。如果直接从空堆开始,依次插入各边,需要O(elog2e)的时间。在构造最小生成树的过程中,需要进行O(e)次出堆操作RemoveMin()、2e次并查集的Find()操作以及n-1次Union()操作,计算时间分别为O(elog2e)、O(elog2n)和O(n)所以总的计算时间为O(n2+elog2e)。 最小生成树 Kruskal算法 如果采用邻接表实现图的存储,则在建立小根堆时需要检测图的邻接表,需要O(n+e)的时间,为建成初始的小根堆,需要O(elog2e)的时间。在构造最小生成树的过程中,需要进行O(e)次出堆操作RemoveMin()、2e次并查集的Find()操作以及n-1次Union()操作,计算时间分别为O(elog2e)、O(elog2n)和O(n),所以总的计算时间为O(n+elog2e)。
您可能关注的文档
- 发电部2010年迎峰度夏措施.doc
- 2008年普通高等学校统一考试题(新课标卷).doc
- 培训环境的布置和准备.doc
- 太阳光发电系统介绍Solar篇.ppt
- 三毛的名字的由来和作品和歌曲.doc
- 透镜及应用练习题.doc
- 综合灭火分析.docx
- 雅高集团简介【非官方】PPT.ppt
- thinkpad X41 2010问题解决.doc
- VC语言_VCchap7.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)