수리논술, 이게 다다.

자연계열 3번

오류 제보

전체 시험 시간 2시간 내외

문제

【문제 3】【지정문제 2】(배점 35%)아래의 제시문을 읽고 다음 물음에 답하시오.

트리는 같은 꼭짓점으로 되돌아오는 경로가 없는 그래프이다. 트리의 꼭짓점은 노드라 하고, 변으로 연결된 두 노드 중 위의 노드는 부모 노드, 아래의 노드는 자식 노드라 한다. 루트(root) 기반 트리는 루트 노드라 하는 특별한 1개의 노드가 존재한다. 루트 노드는 부모 노드가 없다.루트 기반 트리의 일종인 이진트리는 컴퓨터 정보 처리를 위해 매우 유용하게 사용되는 트리로서 다음과 같이 구성된다.

1. 1개의 노드를 가지는 트리는 이진트리이다.2. 1개보다 많은 노드를 가지는 이진트리는 루트 노드와 2개의 이진 부분트리―왼쪽 이진 부분트리, 오른쪽 이진 부분트리―로 구성된다.

9개의 노드와 왼쪽·오른쪽 부분트리

따라서 이진트리는 각 노드가 0개나 2개의 자식 노드를 갖는 특성을 보인다. 왼쪽 그림은 9개의 노드를 갖는 이진트리의 예로서 루트 노드 n1\displaystyle n_1과 2개의 이진 부분트리 TL\displaystyle T_L과 TR\displaystyle T_R로 구성된다. TL\displaystyle T_L과 TR\displaystyle T_R도 각각 자신의 루트 노드와 2개의 이진 부분트리로 구성되는 이진트리이다.자식 노드를 갖는 노드는 내부 노드, 자식 노드를 갖지 않는 노드는 단말 노드라 한다. 그림에서 원으로 나타낸 노드가 내부 노드, 사각형으로 나타낸 노드가 단말 노드이다.모든 노드는 루트 노드로 연결된 하나의 경로가 있으며, 각 노드의 경로의 길이는 경로 상에 있는 변의 개수이다. 예를 들어 n8\displaystyle n_8의 경로의 길이는 3이며 n3\displaystyle n_3의 경로의 길이는 1이다. 최대 경로의 길이를 트리의 높이라 한다. 루트 노드에서 노드까지의 경로의 길이를 노드의 깊이라 하고, 깊이가 i\displaystyle i인 모든 노드의 집합을 레벨 i\displaystyle i라 한다. 그러므로 레벨 i\displaystyle i의 최대 노드 개수는 2i\displaystyle 2^i이다. 가령 루트 노드는 깊이가 0이고 레벨 0에 속하며, n4,n5,n6,n7\displaystyle n_4,n_5,n_6,n_7은 깊이가 2이고 레벨 2에 속한다.

(3-1) 높이가 h\displaystyle h인 이진트리가 가질 수 있는 최대 노드의 개수를 구하시오.

(3-2) 높이가 h\displaystyle h인 이진트리에서 레벨 i\displaystyle i에 속한 내부 노드의 개수를 Ni\displaystyle N_i라고 할 때, 0≤i<h\displaystyle 0\le i<h인 i\displaystyle i에 대해 레벨 i+1\displaystyle i+1의 노드 개수가 2Ni\displaystyle 2N_i임을 보이시오.

(3-3) 높이가 h\displaystyle h인 이진트리에서 레벨 i\displaystyle i에 속한 내부 노드의 개수를 Ni\displaystyle N_i, 레벨 i\displaystyle i에 속한 단말 노드의 개수를 Li\displaystyle L_i라고 할 때, 0≤i<h\displaystyle 0\le i<h인 i\displaystyle i에 대해 Ni=Ni+1+Li+12\displaystyle N_i=\frac{N_{i+1}+L_{i+1}}{2}이 성립함을 보이시오.

(3-4) n\displaystyle n개의 노드를 갖는 이진트리는 n−1\displaystyle n-1개의 변을 가짐을 보이시오.

(3-5) n\displaystyle n개의 단말 노드를 갖는 이진트리는 n−1\displaystyle n-1개의 내부 노드를 가짐을 보이시오.

(3-6) n\displaystyle n개의 단말 노드를 갖는 이진트리의 최대 높이가 n−1\displaystyle n-1임을 보이시오.

해설강의 준비중

(3-1)높이가 h\displaystyle h인 이진트리의 최대 노드 개수= level 0 에서의 최대 노드 개수 + level 1 에서의 최대 노드 개수 + ⋯\displaystyle \cdots+ level h\displaystyle h 에서의 최대 노드 개수 = 20+21+⋯+2h=2h+1−1\displaystyle 2^0+2^1+\cdots+2^h=2^{h+1}-1이다.

(3-2)레벨 i\displaystyle i의 단말 노드는 레벨 i+1\displaystyle i+1에 0 개의 자식 노드를 생성하고, 레벨 i\displaystyle i의 내부 노드는 레벨 i+1\displaystyle i+1에 2Ni\displaystyle 2N_i 개의 자식 노드를 생성하므로,레벨 i+1\displaystyle i+1의 노드 개수 = (레벨 i\displaystyle i의 내부 노드가 생성하는 자식 노드 수) +(레벨 i\displaystyle i의 단말 노드가 생성하는 자식 노드 수)= 2Ni\displaystyle 2N_i이다.

(3-3)문제 (3-2)에 의해 레벨 i+1\displaystyle i+1은 정확히 2Ni\displaystyle 2N_i개의 노드를 가져야 한다.그러나 레벨 i+1\displaystyle i+1에서의 총 노드 개수는 Ni+1+Li+1\displaystyle N_{i+1}+L_{i+1}으로 나타낼 수 있으므로 2Ni=Ni+1+Li+1\displaystyle 2N_i=N_{i+1}+L_{i+1}이 되어 Ni=Ni+1+Li+12\displaystyle N_i=\frac{N_{i+1}+L_{i+1}}{2} 식을 얻는다.

(3-4)이진트리의 루트 노드를 제외한 모든 노드는 왼쪽 또는 오른쪽 이진 부분트리의 루트 노드이므로 반드시 하나의 부모 노드와 변으로 연결되어야 한다. 따라서 루트 노드를 제외하면 n−1\displaystyle n-1 개의 노드가 있으므로 정확히 n−1\displaystyle n-1 개의 변이 필요하다.

(3-5)s\displaystyle s를 이진트리에 있는 내부 노드 개수라 하자.이진트리의 모든 내부 노드는 2개의 자식 노드를 가지므로 이진트리에 있는 모든 변의 개수는 2s\displaystyle 2s이다.이진트리의 총 노드 개수는 n+s\displaystyle n+s이므로 문제 (3-4)에 의해 이진트리에 있는 변의 개수는 n+s−1\displaystyle n+s-1이다.따라서, 2s=n+s−1\displaystyle 2s=n+s-1, 즉 s=n−1\displaystyle s=n-1이다.

(3-6)문제 (3-5)로부터 n\displaystyle n개의 단말 노드를 가지는 이진트리는 총 2n−1\displaystyle 2n-1개의 노드를 갖는 것을 알 수 있다. 루트 노드 하나만 있는 레벨 0 외에는 모든 레벨이 최소 2개의 노드를 가져야 한다. 따라서 2n−2\displaystyle 2n-2개의 노드로 만들 수 있는 최대 개수의 레벨은 n−1\displaystyle n-1개이므로, n\displaystyle n개의 단말 노드를 가지는 이진트리는 최대 (n−1)+1=n\displaystyle (n-1)+1=n개의 레벨, 즉 최대 n−1\displaystyle n-1의 높이를 가질 수 있다.

첨삭 사례

아직 등록된 첨삭 사례가 없습니다.

질문과 답변 · 0개질문과 답변 · 고정 0개

아직 등록된 질문이 없습니다. 질문 작성은 멤버십 회원만 가능합니다.