[EKOO의 JAVA를 이용한 자료구조:7회] Tree (5)
 저자:EKOO| 날짜: 2005년 05월 27일  
사용자 삽입 이미지

사용자 삽입 이미지
 
사용자 삽입 이미지

사용자 삽입 이미지
이제 출력하는 함수와 초기화 함수가 남았죠? 초기화 해주는 함수는 root를 null로 세팅하고, tree_size 변수를 0으로 세팅해주는 작업으로 끝나게 됩니다.




// 트리 초기화.

public void Init_all_tree()

{

    root = null;

    tree_size = 0;



    return;

}

그리고 이제 출력함수만이 남았습니다. 보통 Binary Tree를 출력하는 방법에는 세가지 방법이 있습니다. Preorder, Inorder, Postorder 가 그 세가지 방법인데요. 어떻게 Tree를 돌아다니면서 Node의 값을 찍어주는지에 따라서 나뉘게 됩니다.

사용자 삽입 이미지

[그림12]Full Binary Search Tree



Preorder 1. root의 값을 찍는다
2. Left SubTree에서 Recursive하게 같은 과정을 거친다.
3. Right SubTree에서 Recursive하게 같은 과정을 거친다.
Inorder 1. Left SubTree에서 Recursive하게 같은 과정을 거친다.
2. root의 값을 찍는다.
3. Right SubTree에서 Recursive하게 같은 과정을 거친다.
Postorder 1. Left SubTree에서 Recursive하게 같은 과정을 거친다.
2. Right SubTree에서 Recursive하게 같은 과정을 거친다.
3. root의 값을 찍는다.

Preorder Print : 45, 30, 21, 35, 53, 53, 54
Inorder Print : 21, 30, 35, 45, 53, 53, 54
Postorder Print : 21, 35, 30, 53, 54, 53, 45

위의 Print 함수 역시 독자 여러분들이 직접 해보시구요. 정 안되시는 경우에만 코드를 직접 참고해 주세요.

  • 강좌를 끝마치며...

    8회 Tree 강좌가 드디어 끝이 났습니다. 지난회 강좌까지는 제가 모든 코드를 전부 다 강좌에 집어넣었습니다. 하지만 이번 Tree부터는 코드보다는 개념이 잡혀있어야만 코딩에 무리가 없겠다고 판단해서, 코드보다는 많은 그림으로 쉬운 이해에 도움이 되도록 강좌를 작성하였습니다. 문제는 재귀의 개념이 들어갔다는 것이네요. Tree에서는 while이나 for를 이용한 반복문보다는 재귀를 이용하여 여러 함수를 구현하는 경우가 많습니다. 이해가 잘 안되시는 독자분들께서는 일단 그림을 통해서 개념만 쌓아 두시구요, 다음 강좌에서 다룰 재귀에 대한 강좌를 하고 나서 보시는 것도 좋은 방법이 되실거라 생각합니다.

    아! 전체 코드를 받고 싶으신 분은 ptyjj@naver.com 으로 메일을 보내시면 답장에 첨부하여 보내드리겠습니다. 왠만하면 직접 해보세요~ :)

  • Posted by 영웅기삼
    ,