퀴즈 질문 |
|
|
예상답변/설명 |
이진검색트리를 PostOrder로 읽기 위해서는 왼쪽 - 오른쪽 - 현재노드를 읽게된다. 이러한 방식으로 트리를 읽어나가면서 배열의 요소값을 순차적으로 체크하면 되는데, 이를 위해 배열인덱스를 함께 전달하여 순차적으로 증가시킨다. 인덱스를 계속 변경하기 위해 ref를 사용하였다.
bool IsPostOrder(TreeNode t, int[] A, ref int i)
{
return (t.Left==null || t.Left != null && IsPostOrder(t.Left, A, ref i)))
&& (t.Right==null || (t.Right!=null && IsPostOrder(t.Right, A, ref i)))
&& t.Value == A[i++];
}
마지막 라인에서 처럼 현재 노드 값을 배열 요소값과 비교한 후, 배열 인덱스 i 를 하나 증가시키면 다음 배열요소 검사를 준비하게 된다.
|