#3694. 图(存储与遍历)(客观练习 17 题)
图(存储与遍历)(客观练习 17 题)
- 使用深度优先搜索(DFS)遍历一个图时,通常使用的辅助数据结构是( )。
{{ select(1) }}
- 栈
- 队列
- 数组
- 链表
- 以下关于广度优先搜索(BFS)的描述,错误的是( )。
{{ select(2) }}
- BFS 使用队列实现
- BFS 常用于寻找最短路径
- BFS 适合搜索所有解空间
- BFS 一定可以找到最优解
- 下列关于树的深度优先搜索(DFS)的说法,正确的是( )。
{{ select(3) }}
- DFS 一定会访问所有节点
- DFS 使用队列作为辅助数据结构
- DFS 在二叉树中通常用递归或栈实现
- DFS 无法处理有环图
- 对于一个有 n 个节点和 n-1 条边的连通图,下列说法正确的是( )。
{{ select(4) }}
- 它一定是一棵树
- 它一定不是树
- 它可能存在环
- 它可能不连通
- 使用二维数组存储图时,为了判断两个顶点之间是否有边,时间复杂度为( )。
{{ select(5) }}
- O(1)
- O(n)
- O(n²)
- O(log n)
- 下列关于深度优先搜索(DFS)和广度优先搜索(BFS)的描述,正确的是( )。
{{ select(6) }}
- DFS 使用队列,BFS 使用栈
- DFS 通常用于求最短路径
- BFS 一定能找到最短路径(无边权情况下)
- 两者均不能用于有向图
- 下列代码中,s1->draw(); 和 s2->draw(); 输出不同结果的主要原因是( )。 class Shape { public: virtual void draw() { cout << "绘制图形" << endl; } }; class Circle : public Shape { public: void draw() override { cout << "绘制圆形" << endl; } }; class Rectangle : public Shape { public: void draw() override { cout << "绘制矩形" << endl; } }; int main() { Shape* s1 = new Circle(); Shape* s2 = new Rectangle(); s1->draw(); s2->draw(); delete s1; delete s2; return 0; }
{{ select(7) }}
- draw() 是普通成员函数
- Shape 中的 draw() 被声明为虚函数
- Circle 和 Rectangle 中使用了 public 继承
- 指针变量名不同
- 对于深度优先搜索和广度优先搜索,下列说法正确的是( )。
{{ select(8) }}
- DFS 使用队列辅助,BFS 使用栈辅助
- DFS 和 BFS 都能处理有向图和无向图
- DFS 总是比 BFS 占用更少内存
- BFS 一定比 DFS 快
- 若要对一个实际问题使用广度优先搜索,往往需要( )。
{{ select(9) }}
- 使用栈来存储状态
- 使用优先队列
- 使用队列来存储状态
- 使用数组记录所有状态
- 关于深度优先搜索(DFS),下列说法正确的有( )。
{{ multiselect(10) }}
- DFS 可以使用递归实现
- DFS 使用队列作为辅助数据结构
- DFS 适合求解最短路径
- DFS 适合用于寻找所有可行解
- 下列哪些数据结构适合用作 BFS 的辅助数据结构?( )
{{ multiselect(11) }}
- 栈
- 队列
- 数组
- 优先队列
- 关于深度优先搜索和广度优先搜索的区别,下列哪些说法是正确的?( )
{{ multiselect(12) }}
- DFS 使用栈,BFS 使用队列
- DFS 常用来寻找所有可行解,BFS 常用于寻找最短路径
- DFS 和 BFS 都能用于图的遍历
- DFS 一定比 BFS 更快找到解
- 关于图的广度优先搜索(BFS),下列说法正确的有( )。
{{ multiselect(13) }}
- 可以用于求无权图的最短路径
- 需要使用队列辅助
- 可以用于判断图的连通性
- 总是能找到最优解
- 在树的深度优先搜索(DFS)中,使用栈作为辅助数据结构可以实现“先进后出”的访问顺序。( )
{{ select(14) }}
- 正确
- 错误
- 深度优先搜索(DFS)总是比广度优先搜索(BFS)更节省内存。( )
{{ select(15) }}
- 正确
- 错误
- 在广度优先搜索中,第一次访问到目标节点时一定是在最短路径上的( )
{{ select(16) }}
- 正确
- 错误
- 使用递归实现 DFS 时,如果树的深度过大,可能会导致栈溢出。( )
{{ select(17) }}
- 正确
- 错误