- 1、本文档共93页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北工大(数据结构)11-DSch7Graph
* 邻接矩阵:从弧尾找弧头,需跳过0找1,效率低 邻接表:有多少条弧单链表中就有多少弧结点(有几个存储几个,不浪费),善于从弧尾找弧头 十字链表:邻接表和逆邻接表的结合,既可以从弧尾找弧头(邻接表),也可从弧头找弧尾(逆邻接表); 拓扑排序操作2)只需要找弧头,不需要找弧尾,所以冗余 选中邻接表; 由基本操作1),又需要对入度进行减1操作,需要存储每点入度,在邻接表顶点数组中增设存储入度域 * 每次改变D[i].length,可以通过先删除再重新插入的方法来改变顶点i在堆中的位置, 或者仅为某个顶点添加一个新值(更小的),作为堆中新元素(而不作删除旧值的操作,因为旧值被找到时,该顶点一定被标记为VISITED,从而被忽略)。 不作删除旧值的缺点是,在最差情况下,它将使堆中元素数目由Θ(|V|)增加到Θ(|E|),此时总的时间代价为Θ((|V|+|E|)log|E|),因为处理每条边时都必须对堆进行一次重排。 7.5.2 每对顶点间的最短路径 Floyd算法 Floyd算法思想: 假设用相邻矩阵adj表示图 Floyd算法递归地产生一个矩阵序列adj(0),adj(1),…, adj(k) ,…, adj(n) adj(k)[i,j]等于从顶点Vi到顶点Vj中间顶点序号不大于k的最短路径长度 假设已求得矩阵adj(k-1),那么从顶点Vi到顶点Vj中间顶点的序号不大于k的最短路径有两种情况: 一种是中间不经过顶点Vk,此时adj(k)[i,j]=adj(k-1)[i,j] 另一种是中间经过顶点Vk,此时adj(k)[i,j]adj(k-1)[i,j], adj(k)[ i,j]= min{adj(k-1)[ i,j], adj(k-1)[ i,k]+ adj(k-1)[ k,j]} 7.5.2 每对顶点间的最短路径 V0 V1 V2 5 2 8 3 adj0 0 ∞ 2 5 0 8 ∞ 3 0 adj1 0 ∞ 2 5 0 7 ∞ 3 0 adj2 0 ∞ 2 5 0 7 8 3 0 adj3 0 5 2 5 0 7 8 3 0 path 0 -1 0 1 1 1 -1 2 2 path 0 -1 0 1 1 0 -1 2 2 path 0 -1 0 1 1 0 1 2 2 path 0 2 0 1 1 0 1 2 2 途经v0只看[1,2][2,1] D[1,2]D[1,0]+D[0,2] D[2,1]D[2,0]+D[0,1] 途经v1只看[0,2][2,0] D[0,2]D[0,1]+D[1,2] D[2,0]D[2,1]+D[1,0] 途经v2只看[0,1][1,0] D[0,1]D[0,2]+D[2,1] D[1,0]D[1,2]+D[2,0] path[0]=0 path[1]=1 path[2]=2 if D[ij]=∞ path[ij]=-1 7.5.2 每对顶点间的最短路径 途经v1只看[2,3][3,2] D[2,3]D[2,1]+D[1,3] D[3,2]D[3,1]+D[1,2] 途经v2只看[1,3][3,1] D[1,3]D[1,2]+D[2,3] D[3,1]D[3,2]+D[2,1] 途经v3只看[1,2][2,1] D[1,2]D[1,3]+D[3,2] D[2,1]D[2,3]+D[3,1] 7.5.2 每对顶点间的最短路径[算法7.9] void Floyd(Graph G, Dist** D){ 1/2 int i, j, v; //i,j,v作为计数器 D=new Dist*[G.VerticesNum( )]; //创建D[ ][ ] for(i=0; ;iG.VerticesNum();i++) { D[i]=new Dist[G.VerticesNum()]; } for(i=0;iG.VerticesNum( );i++) //初始化D数组 for(j=0;jG.VerticesNum( );j++) if(i==j){ D[i][j].length=0; D[i][j].pre=i; }//对角线0 else{D[i][j].length =INFINITY; D[i][j].pre=-1;}//无路 for(v=0;vG.VerticesNum();v++) for(Edge e=G.FirstEdge(v);G.IsEdge(e);e=G.NextEdge(e)){ D[v][G.ToVertex(e)].length=G.Weight(e); //按权初始D
您可能关注的文档
- 北京市东城区2014届高三下学期综合练习(二)文综历史.doc
- 北京奥运火炬设计,具有鲜明中国文化特色的造型外观。 北京.ppt
- 北京798艺术区改造案例分析.ppt
- 北京市东城区语文一模试卷及答案2ptgg.doc
- 北京市各区中考二模试题分类汇编:文言文阅读.doc
- 北京市大兴区2013年中考二模语文试卷及答案.doc
- 北京市密云县2013年中考一模语文试题.doc
- 北京市历史会考说明必修二PPT版.pptx
- 北京中考2016年各区一模试题分类汇编(基础 运用-名著阅读).doc
- 化学工艺学讲义.ppt
- 1.1细胞是生命活动的基本单位课件-2024-2025学年高一上学期生物人教版必修1.pptx
- 1.2细胞的多样性和统一性第1课时课件-2024-2025学年高一上学期生物人教版必修1.pptx
- 第16课《白杨礼赞》课件-2025-2026学年统编版语文八年级上册.pptx
- 2026届高三生物一轮复习课件+减数分裂与生物的遗传、变异.pptx
- 3.1细胞膜的结构和功能第2课时课件-2025-2026学年高一上学期生物人教版必修1.pptx
- 2025届高三生物一轮复习课件2.1减数分裂和受精作用.ppt
- 中考语文二轮专题复习课件:新闻概括题.pptx
- 第6课《我看》课件+++2025-2026学年统编版语文九年级上册.pptx
- 第21课《人民英雄永存不朽》课件-2025-2026学年统编版语文八年级上册.pptx
- 2025年广西河池罗城特聘农机技术指导员的(1人)考前自测高频考点模拟试题含答案详解(b卷).docx
最近下载
- 神经内科三基考试题及答案.doc VIP
- 等离子体物理与当代高新技术(本科生).ppt VIP
- SMTC 2 800 003 LIN节点设计需求LIN node design requirements(20180730).pdf
- 医院医院安保服务及停车场运营管理服务招标文件.pdf
- (最新)社区网格员考试试题(含答案).docx VIP
- 老小区燃气管道改造监理实施细则.docx VIP
- 中国行业标准 YY/T 1831-2021梅毒螺旋体抗体检测试剂盒(免疫层析法).pdf
- Walkera华科尔无人机FCS-F8使用指南_CN_V1.2_2020.10.12(金属壳版).pdf
- 五升六数学暑假作业60天附答案.docx VIP
- 高中物理:强基计划专题讲座.pptx VIP
文档评论(0)