数据结构与算法_图

  • 图(graph)

图的存储结构

邻接矩阵(稀疏性)

邻接表

十字链表

 

图的遍历(traversing graph)

深搜(Depth_First_search)

广搜(Breadth_First_Search)

最小生成树(Minimum Cost Spanning Tree)

1.Prim算法

 

2.Kruskal算法 

Prim算法是以结点为起点,找该点权值最小的边

Kruskal算法以边开始,直接找最小权值的边

边集数组按权由小到大

最短路径(shortest paths)

单源最短路径(single-source shortest paths) —— Dijkstra算法

 

所有顶点对之间之间的最短路径(all-pairs shortest paths)

想知道所有顶点到所有顶点的最短路径,循环v[0],O(n3)    同样O(n3)的算法

Floyd算法

拓扑排序(topological sorting)

有向无环图(directed acyclic graph)

AOV(Activity On Vertex Network)描述一个过程,顶点表示活动,弧表示先后顺序(活动之间制约关系)

拓扑序列(topological order)存在v[i]到v[j]的一条路径,在序列中v[i]必须在v[j]之前

拓扑排序(topological sorting)根据有向图建立拓扑序列

结果若全部结点都输出,说明不存在回路,否则说明存在

采用的数据结构:邻接表

最小生成树和最短路径对边操作,用邻接矩阵;拓扑排序对结点操作,用邻接表

关键路径(Critical Path)

AOE(Activity On Edge Network)描述一个过程,顶点表示事件,弧表示活动,弧上的权值表示活动持续的时间

某顶点代表的事件发生,从该顶点出发的活动才能开始;进入某顶点的活动结束,该顶点代表的事件才能发生

猜你喜欢

转载自blog.csdn.net/a1058420631/article/details/81411301