2016-11-11 3 views
-3

예를 들어, array : {1,2,3,4,5,6}을 가지고 있다면, 그 배열로 완전한 이진 트리를 어떻게 만들 수 있습니까? 같은 배열을 사용하여 완전한 이진 트리 구축하기

트리를 만드는

, 그것은 보일 것이다 : 배열은 숫자의 순서가 될 수

        1 
          / \ 
           2  3 
          /\ /
          4 5 6 

,이 순서는 예입니다. 나는 레벨 순으로 나무를 횡단하는 법을 알고 있지만 이런 식으로 그것을 만드는 논리는 확실하지 않습니다.

+0

다음 해결책을 시도하십시오. http://stackoverflow.com/questions/8876406/binarytree-implementation-in-java 도움이 될까요? –

+0

무엇을 시도 했습니까? 우리는 당신을 위해 일하기 위해 여기에 있지 않습니다. 나는 당신에게 구글 "이진 트리를 만드는 법"을 제안하고 거기에서 시작한다. – BlackHatSamurai

답변

0

그래서 모든 어린이가 2 * n 및 2 * n + 1의 배열 슬롯에있는 곳에 구현하는 것에 대해 생각해 볼 수 있습니다. 여기서 n은 부모의 슬롯입니다. 예를 들어. 배열 슬롯 "4"에 "1"이 있으면 슬롯 "8"과 "9"에 자식 2와 3을 설정하십시오. 이것은 매우 비효율적 인 공간이므로 포인터를 통해 연결하는 Node 클래스를 사용합니다.