spacein1001   3년 전

64행에 visit = new boolean[N+1]; 부분이 30행에 있었는데 BFS()가 i=1일때만 돌아가고 멈춰버리더군요 ..

visit이 모두 true로 바뀌어서 i=2부터 돌아가지 않는다는 것은 알겠는데 왜 64행에서는 정상적으로 작동하는지 궁금합니다.

chogahui05   3년 전

visit = new boolean[N+1]이자나요

BFS를 돌릴 때, 저 문장이 수행되면 visit가 boolean 배열 객체의 참조값이 됩니다. 즉, 새로 생성된 boolean 배열을 가리키게 되는 거죠.

그리고 저 경우에 어떻게 초기화가 되는지는 공식 문서 찾아보세요.

30번째 줄에 visit = new boolean[N+1]이 있으면

본 로직이 30번째 줄 밑에 있고 30번째 줄 다음에 본 로직이 수행되는데, 당연하게도 제대로 수행이 되지 않겠죠?

댓글을 작성하려면 로그인해야 합니다.