dfs(깊이우선검색)을 이용하여 그래프의 모든간선을 확인하는 프로그램을 만들라는데
황소숨
2023.04.01
dfs(깊이우선검색)을 이용하여 그래프의 모든간선을 확인하는 프로그램을 만들라는데 생각되로 안되네요 ㅜㅠ
쉬운예로 먼저 해결해보려고 했는데도 안되네요
##includestdio.h
int gr[3][3]={
{0,1,1},
{1,0,1},
{1,1,0}
};
int i;
void dfs(v){
for(i=0;i3;i++){
if((gr[v][i]==1)&&(vi)){
printf(%d , %d ,v,i);
dfs(i);
}
}
}
void main(){
dfs(0);
printf(\n);
}for(i=0;i3;i++){
if((gr[v][i]==1)&&(vi)){
printf(%d , %d ,v,i);
dfs(i);
}
}
요부분에서 i=1일때 1로 dfs보내고 i=2일때도 연결되있고 돌고 2에서 3도 돌고 해서
모든간선 다 방문할 수 있을줄 알았는데 안되네요 ㅡㅡ;;
왜안되는건가요?
ㅜㅠ 재귀가 반복해서 쓸수 있다는 알겠는데 자세한 재귀의 우선순위나 이런건 자세하겐 모르겠네요 ㅜㅠ
이파일이 실행되게하려면 어떻게 고쳐줘야하나요 ㅜㅠ
오늘하루도 좋은하루보내시구요 ^^