BFS 的访问顺序性质

BFS 的访问顺序满足【0】。

开始练习 →

出队才标会有什么后果

把标记从「入队时」挪到「出队时」,后果是【0】。

开始练习 →

BFS 从 0 出发的顺序

同一张图,这次用队列一圈一圈扩。运行下面这段程序: 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 #include <algorithm> #include

开始练习 →

写一个 BFS

补全 bfs:用队列,入队的时候就标 visited。输出从 0 出发的访问顺序。 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 (本题用 g++ -std=c++17

开始练习 →

两种标记时机各入队几次

补全 pushes(g, s, mark_on_push):数出一趟 BFS 里一共往队列里放了几次。mark_on_push 为 true 是入队就标,为 false 是出队才标(放邻居时只放还没标过的,出队时发现已经走过就跳过)。两个次

开始练习 →

2 号在两种遍历里排第几

DFS 和 BFS 都已写好。补全 main:找出 2 号在两个访问顺序里分别排第几(从 1 数起),用 / 拼起来输出(DFS 在前)。 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编

开始练习 →

endl 为什么比换行慢

第 1 步:上下两排各输出 8 行 第 2 步:上排 endl:第 1 行刷一次 第 3 步:上排 endl:第 2 行刷一次 第 4 步:上排 endl:第 3 行刷一次 第 5 步:8 行刷了 8 次 第 6 步:下排先攒着,一次写出

开始练习 →

关同步那一句做了什么

ios::sync_with_stdio(false); 让 cin / cout【0】。

开始练习 →

关同步之后要注意什么

写了 ios::sync_with_stdio(false); 以后,要注意【0】。

开始练习 →

endl 写出去的是什么

把输出先写进一个字符串流,再看它有多长: #include <algorithm> #include <iostream> #include <queue> #include <string>

开始练习 →