扫码加入训练营

牢记核心词

学习得礼盒

计算机考研:数据结构常用算法精析(7)

2013-12-11 14:39:50来源:新东方在线编辑

  Dijkstra算法

  首先引进一个辅助向量, Dist[i]表示当前找到的从源点到vi的最短路径长度。

  final[v]为true,即已经求得从v0到v的最短路径。p[v][w]为true,则w是从v0到v当前求得最短路径上的顶点。该算法弧上的权出现__负数__情况时,不能正确产生最短路径

  void ShortestPath_DIJ( MGraph G, int v0, PathMatrix&p,ShortPathTable& Dist )

  { // 用 Dijkstra 算法求有向网G从源点 u 到其余顶点的最短路径

  for (v=0; v

  {

  final[v] = FALSE; dist[v] = G.arcs[v0][v];

  for(w=0;w

  if(dist[v]

  }

  dist[v0] = 0; final[v0] = TRUE; // 初始化,顶点 v0 属于S集

  for (i=1; i

  {

  min = INFINITY

  for(w=0;w

  if(!final[w]) //w在V-S中

  if(D[w]

  {v=w;min=D[w];}//w顶点离vo更近

  final[v]=true; //离vo最近的v加入S集

  for(w=0;w

  if(!final[w]&&(min+G.arc[v][w]

  { D[w]=min+G.arc[v][w];

  p[w]=p[v];p[w][w]=true;//p[w]=p[v]+[w];

  }//if

  }//for

  } // ShortestPath_DIJ

  Floyed算法:

  void Floyd (mgraph G, int n) ∥求网G中任意两点间最短路径的Floyd算法∥

  { int i,j,k; int D[ ][n],path[ ][n];

  ∥最短路径长度及最短路径标志矩阵,

考研公开课小程序

本文关键字: 计算机 考研 数据结构

声明:如本网转载稿涉及版权等问题,请作者致信lulei@xdfzx.com,我们将及时处理。

限时免费
资料推荐
更多>>
更多内容

关注新东方在线考研服务号

获得21考研真题及答案解析

1. 打开手机微信【扫一扫】,识别上方二维码;
2.点击【关注公众号】,获取资料大礼包。

考研资料大礼包
近10年考研真题及答案免费下载
更多>>
更多公开课>>
更多>>
更多资料
获取验证码
收不到短信?点此接收语音验证码
电话拨打中...请留意来自125909888237的来电
60秒后可重新获取
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
账号密码登录 找回密码
国际手机登录
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
手机快速登录 找回密码
获取验证码
收不到短信?点此接收语音验证码
电话拨打中...请留意来自125909888237的来电
60秒后可重新获取
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
账号密码登录 找回密码
国际手机登录
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
手机快速登录 找回密码
获取验证码
收不到短信?点此接收语音验证码
电话拨打中...请留意来自125909888237的来电
60秒后可重新获取
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
账号密码登录 找回密码
国际手机登录
《新东方在线注册条款》  、  《隐私权保护政策》  及  《儿童隐私保护政策》
手机快速登录 找回密码