2011. 7. 15. 13:45
Ternary Search Tree 구현 JAVA이야기2011. 7. 15. 13:45
Tree클래스와, Node클래스를 가진다.
재귀적으로 호출해서 구현하는 방법과 , Iterator로 구현하는 방법이 있다.
또한, 객체풀을 사용하여 성능향상을 도모할 수 있다.
하나의 노드는 세개의 노드를 가르킬 수 있다.(low, equal, high)
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;
}
}
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 |