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

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

사용자 삽입 이미지
  • Tree개념의 사용 용도

    앞에서 Tree가 뭔지 그 개념에 대해서 살펴 보았습니다. 그렇다면 이 Tree라는 구조를 이용하여 실제로는 어떤곳에 어떻게 사용이 될까요?

    사용자 삽입 이미지

    [그림3] 윈도우 탐색기에서 사용된 Tree

    독자분들도 위와 같은 그림을 자주 보셨으리라 생각됩니다.

    [그림3]을 보시면 내 컴퓨터 밑에 '3.5 플로피 (A:)', '로컬 디스크 (C:)' 등이 보이구요, '로컬 디스크 (C:)' 밑에는 실제로 C: 밑에 있는 하위 디렉토리 들이 표시가 됩니다. 여기서 내 컴퓨터가 root라 할수 있구요, A:, C: 등이 내컴퓨터의 자식 Node가 됩니다. C:는 또 하나의 자식트리가 되어서 여러 자식디렉토리 Node들을 가지고 있는 셈이 됩니다. 앞서 설명드린 Tree의 구조를 그대로 따르고 있죠.

    사용자 삽입 이미지

    [그림4] 0-1 Knapsack Problem 알고리즘에 사용된 Tree

    [그림4]는 0-1 Knapsack Problem 을 푸는데 사용되는 State Space Tree의 그림을 보여줍니다. 복잡한 알고리즘의 해답을 구하는데도 Tree구조가 이용되고 있습니다.

    물론 위의 알고리즘 문제를 해결하는데 State Space Tree를 이용하는 방법만이 있는것은 아닙니다. 여러가지 다른 방법도 얼마든지 있죠.

    [그림4]를 보시면 자식 노드가 2개씩만 뻗쳐 나가는걸 보실수 있습니다. Tree의 기초에 속하는 Binary Tree인데요, 이번에는 이렇게 생긴 Tree를 Java 언어로 직접 구현을 해보도록 하겠습니다.

  • Posted by 영웅기삼
    ,