1,完全,每个点都有直接的连,n个定点和无向图n(n-1)/2,有向图n(n-1)
2,回路或环:回到开始的点,简单的回路或环:除了第一个,其他不重复
3,连通图,连通分量:任意两点都可以连通的,连通分量:子图的任意两点是连通的
4,深度遍历:辅助空间visit[i],表示有没有访问过,时间复杂度,连接矩阵O(n的平分),O(n+e)
void dfs(图 g,第几个顶点 v){ 输出v visit[i]=true for (遍历这个点的邻接点,检查visit[i], 递归
5,广度遍历:和上面一样,不过递归方法不同,不在第一个递归下去,横向循环,用个队列保存输出过的点,等下递归,时间复杂度:O(n^2)或O(n+e)
6,图最小生成树,普里姆算法:先搞一个最小的,从最小里面挑一个,后面加上的可以不断刷新最小距离,o(n2)
克鲁斯卡尔算法:从边入手,每次找最小边,当作很多连通分量,练成最后一个连通分量
7,连接各个点,·迪杰斯特拉算法,选择最小的边开始,然后不断刷新,和上面普里姆有点相似,不过他的刷新的累加,和起点相关,时间复杂度O(n2)
8,每两个点的最短,上面的迪卡斯特拉是一个到其他,怕是在外面加一层循环
9,拓扑排序,循环删除没有前驱的任务