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,错误。

二、综合应用题



解答:



解答:

相关推荐
可编程芯片开发20 分钟前
基于MPPT最大功率跟踪的离网光伏发电系统Simulink建模与仿真
算法
AI科技星29 分钟前
线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转、耦合、坍缩的跨空间标准化变换载体《全域数学vs传统数学:人类文明进阶200讲》第80讲
线性代数·算法·矩阵·数据挖掘·回归·乖乖数学·全域数学
米罗篮32 分钟前
矩阵快速幂 (Exponentiation By Squaring Applied To Matrices)
c++·线性代数·算法·矩阵
dream_home840737 分钟前
图像算法模型NPU适配与算法服务实战指南
人工智能·python·算法·npu 图像服务
大鱼>1 小时前
多宠物家庭智能管理平台:云端架构与多设备协同实战
python·算法·iot·宠物
To_OC2 小时前
LC 22 括号生成:刷完这道题,我终于搞懂回溯剪枝了
javascript·算法·leetcode
To_OC2 小时前
LC 39 组合总和:回溯入门必刷题,我踩过的两个坑都在这了
javascript·算法·leetcode
数字杂技师2 小时前
每条推荐都很准,为什么我还是越刷越无聊?
算法
兰令水2 小时前
hot100【acm版】【2026.7.14打卡-java版本】
java·数据结构·算法·leetcode·面试
cpp_25013 小时前
P10098 [ROIR 2023] 地铁建设 (Day 2)
数据结构·c++·算法·贪心·二分答案·洛谷题解