图论及应用の读书笔记
文章平均质量分 79
Stayaccept
这个作者很懒,什么都没留下…
展开
-
拓扑排序
根据顶点出现的顺序进行你的排序叫做拓扑排序,无向图和有环的有向图没有拓扑排序拓扑排序主要分为三步1.输出所有入度为0的顶点2.删除所有与之前输出的顶点相连的边3.重复前两步直到没有入度为0的点如果结束后依然有点没有删除则一定存在环路,否则所有顶点都将被输出#include #include #include #include #include using原创 2016-03-15 19:26:40 · 1221 阅读 · 5 评论 -
四种建图方法
四种常见的建图方法1.邻接矩阵直接开一个N*N的矩阵如果i,j相连则将二维矩阵赋值,否则则为INF,虽然简单直观但是遍历效率过低,并且不能存储重边,遇到点较稀疏的图时空间利用率过低,时间复杂度为O(N*N)2.前向星将所有边排序并记录每个顶点第一条边的位置,从而实现的存储和遍历。可以储存重边但是不可以直接判断两个节点是否相连,时间复杂度为O(M*logM)#include #原创 2016-03-14 14:37:54 · 3460 阅读 · 0 评论 -
欧拉回路
图G的一个回路,若他恰好通过G的每条边一次,则称该回路为欧拉回路,含有欧拉回路的图称为欧拉图有向图是欧拉图的判断条件:1.图联通并且没有孤立的点(可以用并查集或floyd求传递闭包)2.每个顶点的入度等于出度无向图是欧拉图的判断条件:1.图联通并且没有孤立的点2.度数(入度+出度)是奇数的点的个数为0欧拉图变形也就是每条边经过一次,可以不会到出发点,判断的条件也分为有向原创 2016-03-17 10:12:28 · 650 阅读 · 6 评论 -
哈密顿图
图G的一个回路,若他通过每个节点一次,就是哈密顿回路有一个判定条件是设图G具有n个定点的无向联通图,如果图G任意两个定点度数之和大于n,则G具有哈密顿回路,满足这个条件则一定是哈密顿图,但是哈密顿图不一定满足这个条件,最简单的例子就是一个n阶圈图目前判断哈密顿回路没有高效的算法,因此大多数情况会要求你输出这个哈密顿回路,可以通过这个判定条件进行构造1.任意找俩个相邻的节点S,T通过这两原创 2016-03-22 12:12:48 · 3308 阅读 · 1 评论 -
最小生成树&&次小生成树
对于一个边上具有权值的图来说,其边权值和最小的生成树叫做图G的最小生成树求无向图最小生成树主要有prim和kruskal两种算法1.prim将点集V分成Va和Vb两部分,Va为已经连入生成树的点,Vb为没有连入的点,按照边的大小逐渐向Va中加点,直到Va中包含所有点,具体步骤,复杂度O(mlogn)⑴.首先初始化生成树的权值为0,任选一点放入Va,其余点放入Vb⑵.在Vb中原创 2016-03-23 09:08:57 · 3181 阅读 · 2 评论