北工大(数据结构)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
您可能关注的文档
最近下载
- (2026年)实施指南《GBT13265.1-1997纤维光学隔离器第1部分总规范》.pptx VIP
- 2026-2030中国沉香木行业市场深度调研及发展趋势与投资前景研究报告.docx
- 东北证券-博源化工-000683-稀缺天然碱领军企业阿碱项目稳步扩产.pdf VIP
- JB_T 8531-2013阀门手动装置 技术条件.pdf
- 武术套路单项比赛所需物品明细单.docx VIP
- 部编版小学语文教师:统编版语文1-6年级语文要素梳理.pdf VIP
- 2026年江苏城市职业学院单招职业技能考试必刷测试卷附答案.docx VIP
- 船上见习记录簿(样式).pdf
- (2026春新版)三年级下册道德与法治全册教案.docx
- (2025年)广东省公务员招录面试真题及答案.docx
原创力文档

文档评论(0)