【发布时间】:2021-12-18 21:48:36
【问题描述】:
当邻接表是在一维向量中创建时,如何在dfs的for循环中像二维向量一样使用它。
int dfs(int node) {
int visCount = 1;
visited[node] = true;
//this part!
for (auto neighbour: graph[node]) {
if (!visited[neighbour]) {
visCount += dfs(neighbour);
}
}
return visCount;
}
【问题讨论】:
-
您将不得不解释“邻接列表是在一维向量中创建的”的意思。在
graph[node]上面发布的代码中,可能返回对某种邻居容器的引用,这意味着graph是容器类型的向量或哈希表。如果graph不是邻接列表的向量,您是否在问如何使其工作?那么你必须告诉我们什么是图表。我的意思是你只是问如何将二维数组表示为一维数组? -
是的,如何将二维数组表示为一维数组?
-
那么你想将图表示为邻接矩阵还是仍然作为邻接“列表”,但每行固定大小并用 0 或其他东西填充邻居少于数量的节点列? ...您的问题未详细说明。