黑岩文学

字:
关灯 护眼
黑岩文学 > 编程之战 > 第一百五五章 最小生成树(下)

第一百五五章 最小生成树(下)

  第一百五五章 最小生成树(下) (第1/1页)
  
  那么,就开始编写Prim算法吧!
  
  首先,做异常情况判断。
  
  两种情况视为异常:
  
  1.地图为空(没有意义嘛)
  
  2.地图连通性无法保证
  
  这些情况,通通返回空地图。
  
  然后,从地图中选取一个点,作为起始顶点。
  
  随便哪个点都可以的!
  
  将该点标识为已访问,并将含有起始顶点的边添加到优先级队列。
  
  接下来,是算法的关键性部分。
  
  1.从优先级队列中取出权重最小的边。
  
  2.如果这条边,两端的点都被访问过,说明是失效的边,将其舍弃。
  
  3.这条边没有被舍弃,那就是有效的,加入最小生成树。
  
  4.以这条边,没有被访问过的端点,继续标识为已访问,并将含有该端点的边添加到优先级队列。
  
  5.又从1.开始,反复循环。
  
  这似乎是个从1到4阶段永不停歇的贪心计算过程。
  
  然而,万物有始必有终结。
  
  当图中所有的顶点,都被最小生成树得到(顶点数量相同)。
  
  或者,当优先级队列为空。
  
  这个算法就结束了它的使命。
  
  此时得到的,就是原来地图的最小生成树。
『加入书签,方便阅读』
热门推荐
我的恐怖猛鬼楼 夏日赞歌 剑道第一棺 为了长生,我挖自家祖坟 修行,从变成反派开始 谁与争锋 最强末日系统 三国之无赖兵王 了不起的盖慈比 仙尊天幽