public void preorder(int index) {
// 내용 작성
if(aTree[index] != null) {
System.out.print(aTree[index]);
preorder(2 * index);
preorder(2 * index + 1);
}
}
간단한 트리 전위 순회 함수 입니다.
배열은 32 크기 사이즈 오브젝트 배열로, 입력 index 는 1입니다.
aTree[12] 부터 null 값입니다.
제가 궁금한 것은 디버깅 해보니까 index 가 16이 되어서 if 문이 false 가 되었을때
다시 preorder(2 * index + 1); 이 함수로 넘어 가더라구요.
이유가 무엇인가요? if 문이 false 이니까 자동 적으로 preorder 함수가 끝나야 하는 것 아닌가요?
왜
preorder(2 * index);
(index == 8) ->
preorder(16);
if(aTree[index] != null) == false ->
preorder(2 * index + 1); ->
preorder(17) ->
if(aTree[index] != null) == false ->
preorder(2 * index + 1); ->
preorder(4)
로 함수가 넘어가는건지 이유가 뭔가요? 제 머리로는 도저히 이해가 안돼요,,