달력

12

« 2024/12 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2011. 7. 15. 13:45

Ternary Search Tree 구현 JAVA이야기2011. 7. 15. 13:45

Tree클래스와, Node클래스를 가진다.

재귀적으로 호출해서 구현하는 방법과 , Iterator로 구현하는 방법이 있다.

또한, 객체풀을 사용하여 성능향상을 도모할 수 있다.

하나의 노드는 세개의 노드를 가르킬 수 있다.(low, equal, high)
Node{
  Node low, equal, high;
  char hasChar;
  void *value;
  void * (*search)(String key, int index, int lastIndex);
  void (*put)(String key, int index, int lastIndex, void* value);
}

void * search(String key, int index, int lastIndex){

    char c;
    Node node;
    for(node != root; node!=null; ){
          
         //key[index] < node.hasChar이면 node =node.low
         //key[index] > node.hasChar이면 node = node.high
         //key[index] == node.hasChar이면
         // index == lastIndex 인지 검사하고 참이면 node.value 리턴. index++ node = node.equal; 
    }
}

void put(String key, int index, int lastIndex, void *value){
   
    char c;
    Node node = root;
    while(true){
        c = key[index]
     //c < node.hasChar 이면 node를 새로할당하고 node = node.low;
    // c >  node.hasChar이면 node를 새로할당하고 node = node.high;
    // c == node.hasChar이면
   // index == lastIndex인지 검사하고 참이면 종료한다(사전검사)
   // index++ node를 새로할당하고 node = node.equal;
  }
}
 

'JAVA이야기' 카테고리의 다른 글

[java] 초기화 블록  (0) 2011.07.16
Computer Science Tree종류  (0) 2011.07.15
ThreadLocal  (0) 2011.07.13
자바의 volatile 필드  (0) 2011.07.13
프로그래밍언어, 컴퓨터구조 ===> restrict  (0) 2011.07.08
:
Posted by НooпeУ


Code Start Code End