[王道考研计算机机试指南--专题训练]Chapter5图论

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37053885/article/details/88376733

知识清单

基础预备知识:图的表示,结点和边。
图在计算机中的表示实现:
①邻接矩阵:适用于边稠密图,或者需要经常判断两个结点直接的关系的情况。
②邻接链表:适用于边稀疏图,或者经常需要遍历某一个结点的邻接结点的情况。

  • 1.最小生成树(Prim)
  • 2.最短路径(Dijkstra(单源)、Floyd(多源))
  • 3.拓扑排序(无环图)
  • 4.并查集(方便集合操作的数据结构)

1.并查集

主要用于集合的先关操作,比如确定集合中含有哪些元素,判断两个元素是否处在同一个集合中,求集合中元素的个数,求图总连通分量的个数等。

下面为典型例题:
求解图中连通分量的个数(顶点数已经确定):
畅通工程 OJ 1012
How Many Tables(九度OJ 1445)
求解图中连通分量的个数(顶点数需要自己统计):
第一题
求解每个连通分量中元素的个数:
More is better (九度 OJ 1444)

2.最小生成树(MST)

Kruskal算法(采用并查集实现):
算法步骤描述:

① 初始时将所有的结点设置为孤立的集合。
②按照边权递增的顺序遍历所有的边,若遍历到的边连接的两个点仍然属于不同的集合,那么,改变为最小生成树的边,合并两个结点所在的集合。
③当所有的结点遍历完成之后,图上的所有结点均属于同一个集合,则最小生成树确定完毕。否则会,该图为非连通图,不存在最小生成树。

还是畅通工程 (九度 OJ 1017)
Freckles(九度 OJ 1144)
Jungle Roads(九度 OJ1154 )
畅通工程II(九度 OJ1024 )[最小生成树可能不存在]

猜你喜欢

转载自blog.csdn.net/qq_37053885/article/details/88376733