数据结构:图

图的遍历:

  • 图的深度优先遍历类似于二叉树的:先序遍历        
  • 图的广度优先遍历类似于二叉树的:层次遍历
  • 深度----栈
  • 广度-----队列
  • 遍历序列.......

构成强连通分量,前提是个环或一个结点;

具有 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 个边为最少的情况。请看下图:

221773f5b8380d1aa2899df7b7e31ed5.png

 

可以看到,同样是给出 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到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是:

54fe353e77dde157c40aea9d7594aa80.png

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值