图的遍历:
- 图的深度优先遍历类似于二叉树的:先序遍历
- 图的广度优先遍历类似于二叉树的:层次遍历
- 深度----栈
- 广度-----队列
- 遍历序列.......
构成强连通分量,前提是个环或一个结点;
具有 100 个顶点和 12 条边的无向图至多有多少个连通分量?(100-6)+1=95个
12条边,最多有可以有6个顶点,其余94个顶点各成一个连通分量
最小生成树:所有顶点连在一起,但不存在回路 最小生成树不唯一
- Prim算法:每次选择最小权值边 --------稠密图
- Kruskal算法:权值按从小到大排序...---------稀疏图
Prim 算法是通过每步添加一条边及其相连的顶点到一棵树,从而逐步生成最小生成树。
Kruskal 算法是维护一个森林,每一步把两棵树合并成一棵。
P 是顶点 S 到 T 的最短路径,如果该图中的所有路径的权值都加 1,P 仍然是 S 到 T 的最短路径。
错。假如说最短路径上一共有10条边,而另一条路径虽然比最短路径长,但它只有一条边,如果全加1,就会导致边少的路径成为新的最短路径。
n个顶点的无向连通图最多 n(n-1)/2条边(即无向完全连通图),最少 n-1条边
n个顶点有向图最多n(n-1)条边(有向完全图)
若无向图 G = (V, E) 中含 7 个顶点,则保证图 G 在任何连边方式下都是连通的,则需要的边数最少是( )
链接:若无向图 G = (V, E) 中含 7 个顶点,则保证图 __牛客网
来源:牛客网
首先我想很多人一开始会疑惑为什么不能是 6 个边为最少的情况。请看下图:
可以看到,同样是给出 7 点 6 边,第二种情况并不能连通,也就不符合题目中“任何情况”的要求。
由此我们可以分析到,要让 7 个点都连通,那么先让 6 个点完全连通,所谓完全就是每个点能够支出的边是满的,这样 6 个点的情况下,边和点的关系是满的。其边的数量由公式 n*(n-1)/2 得出(无向完全连通图),也就是 6*5/2=15;
那么此时,我多了一个点,7 号点,只需要在那 6 个点的图中连一根边过来,7 号点就可以访问任意 6 点图中的点了。
如果G是一个有15条边的非连通无向图,那么该图顶点个数最少为多少?
n(n-1)/2=15,则n=6,非连通再加一个顶点,即6+1=7
已知无向图G含有16条边,其中度为4的顶点个数为3,度为3的顶点个数为4,其他顶点的度均小于3。图G所含的顶点个数至少是:
无向图边数的两倍等于各顶点度数的总和。由于其他顶点的度均小于3,可以设它们的度都为2,设它们的数量是x,可列出这样的方程4*3+3*4+2*x=16*2,解得x=4。4+3+3=11
关键路径:从第一个事件到最后一个事件的最长路径
如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G中一定有回路。
不一定,还可能存在2个连通分量如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G一定有2个连通分量
如果从有向图 G 的每一点均能通过深度优先搜索遍历到所有其它顶点,则该图是一个有环图;而拓扑排序的前提是有向无环图;
若要检查有向图中有无回路,除了可以利用拓扑排序算法外,还可以用深度优先搜索
使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是:
A.6, 7, 5, 3, 2, 4
B.6, 2, 5, 7, 3, 4
C.2, 3, 4, 5, 6, 7
D2, 4, 3, 6, 5, 7