当前位置: 首页 > news >正文

织梦网站转跳手机站注册公司代理记账费用

织梦网站转跳手机站,注册公司代理记账费用,制作网站开发用的图片,网站怎样做反向链接目录 广度优先遍历与最短路径 Java 实例代码 src/runoob/graph/ShortestPath.java 文件代码#xff1a; 广度优先遍历与最短路径 广度优先遍历从某个顶点 v 出发#xff0c;首先访问这个结点#xff0c;并将其标记为已访问过#xff0c;然后顺序访问结点v的所有未被访问…目录 广度优先遍历与最短路径 Java 实例代码 src/runoob/graph/ShortestPath.java 文件代码 广度优先遍历与最短路径 广度优先遍历从某个顶点 v 出发首先访问这个结点并将其标记为已访问过然后顺序访问结点v的所有未被访问的邻接点 {vi,..,vj} 并将其标记为已访问过然后将 {vi,...,vj} 中的每一个节点重复节点v的访问方法直到所有结点都被访问完为止。 我们可以分为三个步骤 1使用一个辅助队列 q首先将顶点 v 入队将其标记为已访问然后循环检测队列是否为空。2如果队列不为空则取出队列第一个元素并将与该元素相关联的所有未被访问的节点入队将这些节点标记为已访问。3如果队列为空则说明已经按照广度优先遍历了所有的节点。 下图所示右边蓝色表示从 0 开始遍历节点的顺序下面是记录距离 0 的距离可知广度优先遍历能求出无权图的最短路径。 下面用代码展示如何用广度优先遍历方式完成遍历并且查询到最短路径。我们在上一小节代码的基础上增加一全局变量 ord 数组记录路径中节点的次序。ord[i] 表示 i 节点在路径中的次序。同时构造函数做出相应调整在遍历相邻节点时 每访问一个未被访问的节点进行 ord[i] ord[v] 1记录距离。邻接表的广度优先遍历时间复杂度为 O(VE)邻接矩阵的时间复杂度为O(V^2)。 ... // 构造函数, 寻路算法, 寻找图graph从s点到其他点的路径 public ShortestPath(Graph graph, int s){     // 算法初始化     G graph;     assert s 0 s G.V();     visited new boolean[G.V()];     from new int[G.V()];     ord new int[G.V()];     for( int i 0 ; i G.V() ; i ){         visited[i] false;         from[i] -1;         ord[i] -1;     }     this.s s;     // 无向图最短路径算法, 从s开始广度优先遍历整张图     LinkedListInteger q new LinkedListInteger();     q.push( s );     visited[s] true;     ord[s] 0;     while( !q.isEmpty() ){         int v q.pop();         for( int i : G.adj(v) )             if( !visited[i] ){                 q.push(i);                 visited[i] true;                 from[i] v;                 ord[i] ord[v] 1;             }     } } ... 查看从 s 点到 w 点的最短路径长度若从 s 到 w 不可达返回-1。 ... public int length(int w){     assert w 0 w G.V();     return ord[w]; } ... Java 实例代码 源码包下载Download src/runoob/graph/ShortestPath.java 文件代码 package runoob.graph; import runoob.graph.read.Graph; import java.util.LinkedList; import java.util.Stack; import java.util.Vector; /**  * 广度优先遍历与最短路径  */ public class ShortestPath {     // 图的引用     private Graph G;     // 起始点     private int s;     // 记录dfs的过程中节点是否被访问     private boolean[] visited;     // 记录路径, from[i]表示查找的路径上i的上一个节点     private int[] from;     // 记录路径中节点的次序。ord[i]表示i节点在路径中的次序。     private int[] ord;     // 构造函数, 寻路算法, 寻找图graph从s点到其他点的路径     public ShortestPath(Graph graph, int s){         // 算法初始化         G graph;         assert s 0 s G.V();         visited new boolean[G.V()];         from new int[G.V()];         ord new int[G.V()];         for( int i 0 ; i G.V() ; i ){             visited[i] false;             from[i] -1;             ord[i] -1;         }         this.s s;         // 无向图最短路径算法, 从s开始广度优先遍历整张图         LinkedListInteger q new LinkedListInteger();         q.push( s );         visited[s] true;         ord[s] 0;         while( !q.isEmpty() ){             int v q.pop();             for( int i : G.adj(v) )                 if( !visited[i] ){                     q.push(i);                     visited[i] true;                     from[i] v;                     ord[i] ord[v] 1;                 }         }     }     // 查询从s点到w点是否有路径     public boolean hasPath(int w){         assert w 0 w G.V();         return visited[w];     }     // 查询从s点到w点的路径, 存放在vec中     public VectorInteger path(int w){         assert hasPath(w) ;         StackInteger s new StackInteger();         // 通过from数组逆向查找到从s到w的路径, 存放到栈中         int p w;         while( p ! -1 ){             s.push(p);             p from[p];         }         // 从栈中依次取出元素, 获得顺序的从s到w的路径         VectorInteger res new VectorInteger();         while( !s.empty() )             res.add( s.pop() );         return res;     }     // 打印出从s点到w点的路径     public void showPath(int w){         assert hasPath(w) ;         VectorInteger vec path(w);         for( int i 0 ; i vec.size() ; i ){             System.out.print(vec.elementAt(i));             if( i vec.size() - 1 )                 System.out.println();             else                 System.out.print( - );         }     }     // 查看从s点到w点的最短路径长度     // 若从s到w不可达返回-1     public int length(int w){         assert w 0 w G.V();         return ord[w];     } }
http://www.w-s-a.com/news/728415/

相关文章:

  • wordpress建站Pdf亚马逊aws在线观看
  • 做网站的外包公司有哪些WordPress调用json数据
  • 做网站网站怎么赚钱网站的建设及维护报告
  • 可以做效果图的网站东莞网站优化什么方法
  • 网站和软件的区别怎么做招生网站
  • 雄安免费网站建设电话如何做网站推广 求指点
  • 十大免费cad网站入口软件北京做网站建设价格
  • 建设一个公司网站要具备什么网页制作的专业
  • 东莞seo建站排名全包网站
  • 网站建设的基本步骤有哪些软件商店下载官方
  • 网站建设开发报告论文hao123上网从这里开始官方
  • 阿里云建网站费用徐州房产网
  • 网站统计分析平台做企业礼品的网站
  • 做可视化图表的网站wordpress批量导入tag
  • txt怎么做网站网站的链接结构包括
  • 适合平面设计师的网站网络营销专员的就业前景
  • 好订单网服装加工接单谷歌seo网站推广怎么做
  • seo泛站群外贸网站建设团队
  • 网站免费维护建立网站国家城乡建设部投诉网站
  • 企业网站必须备案吗wordpress导入数据库依然无法链接
  • 浅谈高校网站群的建设网站不支持m.域名
  • 和平网站建设公司做实验教学视频的网站
  • 音乐网站源码带手机版WordPress菜单调用不出
  • 昆明网站设计都需要设计什么网络推广岗位职责和任职要求
  • 国外公司网站模板网站建设公司选择意见书
  • 如何创建一个网站卖东西郑州 网站建设公司
  • 石景山郑州阳网站建设南京网站搜索引擎优化
  • 一个网站需要哪些备案书店网站建设策划书总结
  • 网站建设的重点是什么注册网站空间
  • 网站公司企业宗旨我的网站 dedecms