BFS 的访问顺序有什么性质
BFS 的访问顺序满足【0】。
出队才标会有什么后果
把标记从"入队时"挪到"出队时",后果是【0】。
BFS 从 0 出发的访问顺序
同一张图,这次用队列一圈一圈扩。运行下面这段程序: from collections import deque def bfs(g, s): seen = {s} q = deque([s]) out = []
写一个 BFS
补全 bfs:用队列,入队的时候就标 visited。输出访问顺序。
⚠️ 两种标记时机,各入队几次
写一个 pushes(g, s, mark_on_push):数出一趟 BFS 里一共往队列里放了几次。mark_on_push 为真=入队就标,为假=出队才标。 把两个次数拼起来输出(入队就标的在前)。
⚠️ 2 号在两种遍历里排第几
把 DFS 和 BFS 都写出来,从 0 出发各跑一遍,找出 2 号在两个访问顺序里分别排第几(从 1 数起)。 两个位次拼起来输出(DFS 在前)。
连通分量是什么
一个连通分量指的是【0】。
用遍历数出连通块的办法
用遍历找出全部连通块,做法是【0】。
⚠️ 遍历和并查集各适合什么
同样是找连通块,遍历和并查集的分工是【0】。
这张图有几块,各多大
七个点的图。运行下面这段程序: def blocks(g): seen = set() out = [] for s in sorted(g): if s in seen: c