数据结构——图(图的应用)

图的应用

  • 生成树的概念
  • 最小生成树
      • 最小生成树的概念
      • 构造最小生成树Minimum Spanning Tree
      • 构造最小生成树方法一:普里姆(Prim)算法
      • 构造最小生成树方法二:克鲁斯卡尔(Kruskal)算法
      • 两种算法比较
  • 最短路径
      • 单源最短路径——迪杰斯特拉(Dijkstra)算法
      • 所有顶点间的最短路径——弗洛伊德(Floyd)算法
  • 有向无环图及其应用(拓扑排序)
  • 关键路径

生成树的概念

生成树:所有顶点均有边连接在一起,但不存在回路的图

数据结构——图(图的应用)_第1张图片

一个图可以有许多可不同的生成树

所有生成树具有以下共同特点:

  • 生成树的顶点个数与图的顶点个数相同
  • 生成树是图的极小连通子图,去掉一条边则非连通
  • 一个有 n n n 个顶点的连通图的生成树有 n − 1 n-1 n1 条边
  • 在生成树中再加一条边必然形成回路

含n个顶点n-1条边的图不一定是生成树

无向图的生成树

数据结构——图(图的应用)_第2张图片

最小生成树

最小生成树的概念

数据结构——图(图的应用)_第3张图片
数据结构——图(图的应用)_第4张图片

构造最小生成树Minimum Spanning Tree

MST性质:
  设 N = ( V , E ) N = (V,E) N=(VE) 是一个连通图,U是顶点集V的一个非空子集。若边 ( u , v ) (u,v) (uv) 是一条具有最小权值的边,其中 u ∈ U u∈U uU v ∈ V − U v∈V-U vVU ,则必存在一颗包含边 ( u , v ) (u,v) (uv) 的最小生成树

任何算法都利用了MST的性质

例如:

你可能感兴趣的:(数据结构,数据结构,图论,算法)