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>