25版王道数据结构课后习题详细分析 第六章 图 6.2图的遍历

一、单项选择题


------------------------------------------------------------

解析:广度优先搜索以起始结点为中心,一层一层地向外层扩展遍历图的顶点,因此无法考虑到边权值,只适合求边权值相等的图的单源最短路径。广度优先搜索相当于树的层序遍历,选项Ⅲ错误。广度优先搜索需要用到队列,深度优先搜索需要用到栈,选项Ⅳ正确。

正确答案:



解析:

正确答案:



解析:DFS(或BFS)可用来计算无向图的连通分量数,因为一次遍历必然会将一个连通图中的所有顶点都访问到,所以计算图的连通分量数正好是DFsTraverse()中DFS被调用的次数。

正确答案:



解析:深度优先遍历时,每个顶点表结点和每个边表结点均查找一次。每个顶点递归调用一次。需要借助一个递归工作栈:而广度优先遍历时,也是每个顶卢表结点和每个边敲结点均查找一次,需要借助一个辅助队列。因此,时间复杂度都是O(n +e)。空间复杂度都是O(n)。

正确答案:



解析:在图的广度优先遍历算法中,每个顶点被访问后立即做访问标记并入队。若队列不空,则队首顶点出队,若该顶点的邻接顶点未被访问,则访问之,做访问标记并入队:若被访问过。则跳过,如此反复,直至队空。因此,在广度优先遍历过程中,每个顶点最多入队一次。

正确答案:



解析:采用邻接矩阵表示时,查找一个顶点所有出边的时间复杂度为O(n),共有n个顶点,所以时间复杂度均为O(n^2)。

正确答案:



解析:画出草图后,此类题可以根据边的邻接关系快速排除错误选项。以A为例,在遍历到e之后,应该访问与e邻接但未被访问的结点,(e, c)显然不在边集中。

正确答案:



解析:仅1和4正确。以2为例,遍历到c之后,与c邻接且未被访问的结点为空集,所以应为a的邻接点b或e入栈。以3为例,因为遍历要按栈退回,所以是先b后c,而不能先c后b。

正确答案:



解析:图的深度优先搜索类似于树的先根遍历,即先访问结点,再递归向外层结点遍历,都采用回溯算法。图的广度优先搜索类似于树的层序遍历,即一层一层向外层扩展遍历,都需要采用队列来辅助算法的实现。

正确答案:



解析:DFS序列产生的路径为<1,2>,<2,5>,<5,4>,3,6>;BFS序列产生的路径为<1,2>,<1,4>,2,5>,<3,6>。

正确答案:



解析:画出V和E对应的图G,然后根据搜索算法求解。

正确答案:



解析:利用深度优先遍历可以判断图G中是否存在回路。

对于无向图来说,若深度优先遍历过程中遇到了回边,则必定存在环;对于有向图来说,这条回边可能是指向深度优先森林中另一棵生成树上的顶点的弧;但是,从有向图的某个顶点v出发进行深度优先遍历时,若在DFS(v)结束之前出现一条从顶点u到顶点v的回边,且u在生成树上是v的子孙,则有向图必定存在包含顶点v和顶点u的环。

正确答案:



解析:连通分量是无向图的极大连通子图,其中极大的含义是将依附于连通分量中顶点的所有边都加上,所以连通分量中可能存在回路,这样就不是生成树了。

正确答案:



解析:对于无向图的广度优先搜索生成树,起点到其他顶点的路径是图中对应的最短路径,即所有生成树中树高最小。此外,深度优先总是尽可能"深"地搜索图,因此其路径也尽可能长,所以深度优先生成树的树高总是大于或等于广度优先生成树的树高。

正确答案:



解析:广度优先遍历需要借助队列实现。采用邻接表存储方式对图进行广度优先遍历时,每个顶点均需入队一次(顶点表遍历),所以时间复杂度为O(n),在搜索所有顶点的邻接点的过程中,每条边至少访问一次(出边表遍历),所以时间复杂度为O(e),算法总的时间复杂度为O(n+e)。

正确答案:



解析:只要掌握DFS和 BFS的遍历过程,便能轻易解决。逐个代入,手工模拟,选项D是深度优先遍历,而不是广度优先遍历。

正确答案:



解析:

正确答案:



解析:按深度优先遍历的策略进行遍历。对于A:先访问V,然后访问与V邻接且未被访问的任意一个顶点(满足的有V,V和Vx),此时访问V,然后从V出发,访问与V邻接且未被访问的任意一个顶点(满足的只有V),然后从V出发,访问与V邻接且未被访问的任意一个顶点(满足的只有V),然后从V出发,访问与巧邻接且未被访问的任意一个顶点(满足的只有Vz),结束遍历。B和C的分析方法与A相同。对于D,首先访问V,然后从环出发,访问与邻接且未被访问的任意一个顶点(满足的有 V,7和V),然后从V出发,访问与V邻接且未被访问的任意一个顶点(满足的只有Vs),按规则本应该访问V,但D却访问了V,错误。

二、综合应用题



解答:



解答:

相关推荐
浮生如梦_1 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
励志成为嵌入式工程师3 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
捕鲸叉3 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer3 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
wheeldown4 小时前
【数据结构】选择排序
数据结构·算法·排序算法
观音山保我别报错5 小时前
C语言扫雷小游戏
c语言·开发语言·算法
TangKenny6 小时前
计算网络信号
java·算法·华为
景鹤6 小时前
【算法】递归+深搜:814.二叉树剪枝
算法
iiFrankie6 小时前
SCNU习题 总结与复习
算法
一个通信老学姐7 小时前
专业130+总400+武汉理工大学855信号与系统考研经验电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节