⚠️ 2 号在两种遍历里排第几
把 DFS 和 BFS 都写出来,从 0 出发各跑一遍,找出 2 号在两个访问顺序里分别排第几(从 1 数起)。 两个位次拼起来输出(DFS 在前)。
阅读更多 →
⚠️ 两种标记时机,各入队几次
写一个 pushes(g, s, mark_on_push):数出一趟 BFS 里一共往队列里放了几次。mark_on_push 为真=入队就标,为假=出队才标。 把两个次数拼起来输出(入队就标的在前
阅读更多 →
写一个 BFS
补全 bfs:用队列,入队的时候就标 visited。输出访问顺序。
阅读更多 →
BFS 从 0 出发的访问顺序
同一张图,这次用队列一圈一圈扩。运行下面这段程序: from collections import deque def bfs(g, s): seen = {s} q = deque
阅读更多 →
出队才标会有什么后果
把标记从"入队时"挪到"出队时",后果是【0】。
阅读更多 →
BFS 的访问顺序有什么性质
BFS 的访问顺序满足【0】。
阅读更多 →
⚠️ BFS 什么时候把点标成走过
BFS 里标记一个点的时机是【0】。
阅读更多 →
BFS 的走法
广度优先搜索的走法是【0】。
阅读更多 →
⚠️ 顺序不同,走到的点必须相同
把递归版和栈版都写出来,从 0 出发各跑一遍。 输出三样:递归版走到几个点 / 栈版走到几个点 / 两边走到的点集合是否相同(相同输出 结果一致,否则 结果不一致)。
阅读更多 →
⚠️ 换成栈版,顺序会变
补全 dfs_stack:不用递归,自己开一个栈。每次弹出栈顶,没走过就记下来,再把它的邻居压进去。 输出访问顺序——它和递归版不一样。
阅读更多 →