[英]What is causing the segmentation fault in here?
這只是我通過遞歸嘗試過的無向圖的 DFS 的簡單代碼。遞歸確實在此處終止(我猜?)。那么,是什么導致了分段錯誤? 我使用了在線編譯器,即 jdoodle 和教程點。(好吧,這很愚蠢,對不起)
#include <bits/stdc++.h>
using namespace std;
void dfs(vector<int> g[],int n,bool vis[]){
vis[n]=true;
cout<<n<<" ";
for(auto x:g[n]){
if(!vis[x]) dfs(g,x,vis);
}
return;
}
int main() {
int t;
cin>>t;
while(t--){
int n,e,u,v,i;
cin>>n>>e;
bool vis[n]={false};
vector<int> g[n];
for(i=0;i<e;i++){
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
dfs(g,n,vis);
}
return 0;
}
您對dfs
中的g
和vis
具有超出范圍的數組訪問權限。 arrays 的大小都是n
但您可以訪問g[n]
和vis[n]
。
也許您打算調用dfs(g,0,vis);
???
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.