首页 > 试题广场 >

补全深度优先搜索(DFS)的核心代码 void DFS(in

[单选题]
补全深度优先搜索(DFS)的核心代码
void DFS(int v) {
    static bool visited[V];
    visited[v] = true;
    printf("%d ", v);
    
    for (int i = 0; i < V; ++i) {
        if (adj[v][i] == 1 && !___________) { //填空
            DFS(i);
        }
    }
}


  • visited[i]
  • adj[v][i]
  • v[i]
  • i
这个问题是关于深度优先搜索(DFS)算法的实现,需要补全判断条件。

在 DFS 算法中,我们需要访问所有与当前节点相邻且尚未被访问的节点。代码中已经有了判断两个节点是否相邻的条件(adj[v][i] == 1),还需要判断节点i是否未被访问过。

代码中使用visited数组来记录节点的访问状态,visited[i]为true表示节点i已被访问,为false表示未被访问。

因此,空格处应填入visited[i],完整的判断条件是:

c
if (adj[v][i] == 1 && !visited[i]) { DFS(i); } 

这个条件的意思是:如果节点v和节点i相邻,并且节点i尚未被访问过,则递归访问节点i。
发表于 2025-08-23 16:25:25 回复(0)