【数据结构十三】图的各类应用以及对应算法(最小生成树/最短路径问题)

183 阅读1分钟

图的应用

一:最小生成(代价)树

  • 概念:

图片.png

  • 应用:

图片.png

图片.png

  • 使用的算法:
    • Prim算法(普里姆):从某一个顶点开始构建生成树;每次将代价最小的新顶点纳入生成树,直到所有顶点都纳入为止
    • Kruskal算法(克鲁斯卡尔):每次选择一条权值最小的边,使这条边的两头连通(原本已经连通的就不选);直到所有结点都连通
    • 时间复杂度:

图片.png

  • 算法实现思想:

图片.png

图片.png

二:最短路径问题

  • 概念:

图片.png

  • (1)BFS求无权图的单源最短路径:
    • 只适用于无权图,或者所有边的权值都相同的图
    • 代码实现:
    • 就是对BFS的小修改,在visit一个顶点时,修改其最短长度d[]并在path[]记录前驱结点

图片.png

  • 总结1:

图片.png

  • (2)Dijkstra最短路径算法:
    • 概念:

图片.png

图片.png

  • (3)Floyd最短路径算法:
    • 概念:

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

  • 代码实现:

图片.png

  • (4)对比总结:

图片.png