1991번 - 트리 순회
이거 왜 런타임 에러가 뜰까요??
혹시 입력을 할 때 아래와 같이 노드의 갯수대로 되어야하는데
1
A . .
-----------------------------------------
A B C
노드의 갯수는 1개인데 입력된 것은 3개인 이런 입력 예제가 있어서 그런걸까요??
이것도 다 에러를 잡아줘야하나요??
다음과 같은 입력 데이터가 들어왔을 때 Tree 배열의 범위를 넘어서는 걸로 보입니다.
근데 이거 왜 트리 크기가 넘어가는걸까요?
노드의 갯수가 26개까지인데
맨 마지막 26번째 노드의 자식이라고 해봤자 배열 인덱스 52번째랑 53번째인데요.
그럼 크기를 root 인덱스가 1이라고 한다면 크기를 54로 지정하면 이 범위를 벗어나지 않지 않나요???
실제로 돌려보면
A는 [1] 에 저장되고
B는 [2], C는 [4], D는 [8], E는 [16], F는 [32], G는 [64]
H는 [128]에 저장하려다가 배열 범위를 벗어납니다.
어제 생각해봤는데 최악의 경우 트리의 높이가 26인 경우도 있더라고요..그래서 2^26-1개의 노드가 생성되어야하더라고요..
그래서 그 크기만큼 배열 크기를 지정하니깐 이상없이 잘 되네요!
답변 정말 감사합니다! 덕분에 큰 도움 되었습니다^^
댓글을 작성하려면 로그인해야 합니다.
nhs0912 6년 전
이거 왜 런타임 에러가 뜰까요??
혹시 입력을 할 때 아래와 같이 노드의 갯수대로 되어야하는데
1
A . .
-----------------------------------------
1
A B C
노드의 갯수는 1개인데 입력된 것은 3개인 이런 입력 예제가 있어서 그런걸까요??
이것도 다 에러를 잡아줘야하나요??