잠시 동안 Ternary Search Tree을 사용하고 있었는데, 자동 완성 드롭 다운 콤보 상자를 구현하는 데이터 구조로 사용되었습니다. "FO"사용자 유형, 콤보 상자 드롭 다운이대소 문자를 구별하지 않는 Ternary 검색 트리
foo는 음식 축구
문제는, 삼항 검색 나무의 사용 나의 현재를 표시 할 때 어떤는 대소 문자를 구분 의미한다. 내 구현은 다음과 같습니다. 그것은 약 1 + + 예를 들어 현실 세계에서 사용되었습니다. 따라서 나는 그것을 꽤 신뢰할 만하다고 생각한다.
그러나, 나는 의미를 구분하지 삼항 검색 트리, 나는 "FO"를 입력 한 경우를 찾고 있어요, 콤보 상자 드롭 다운 나에게
푸 식품 축구를 보여줄 것이다
TST에 대한 몇 가지 핵심 인터페이스가 있습니다. 새로운 인센티브 TST가 비슷한 인터페이스를 갖기를 바랍니다.
/**
* Stores value in the TernarySearchTree. The value may be retrieved using key.
* @param key A string that indexes the object to be stored.
* @param value The object to be stored in the tree.
*/
public void put(String key, E value) {
getOrCreateNode(key).data = value;
}
/**
* Retrieve the object indexed by key.
* @param key A String index.
* @return Object The object retrieved from the TernarySearchTree.
*/
public E get(String key) {
TSTNode<E> node = getNode(key);
if(node==null) return null;
return node.data;
}
사용의 예는 다음과 같다. TSTSearchEngine은 TernarySearchTree를 핵심 백본으로 사용하고 있습니다.
Example usage of Ternary Search Tree
// There is stock named microsoft and MICROChip inside stocks ArrayList.
TSTSearchEngine<Stock> engine = TSTSearchEngine<Stock>(stocks);
// I wish it would return microsoft and MICROCHIP. Currently, it just return microsoft.
List<Stock> results = engine.searchAll("micro");
아니요. 그렇게 할 수는 없습니다. 원래 데이터 세트 ABC와 ABC가 있다고 상상해보십시오. "ALL"을 대문자로 변환하여 저장하면 ABC 만 검색 할 수 있습니다. aBc는 그 공간에서 잃어 버릴 것이다. 내 소원은 무엇입니까, 나는 abc를 제공하고, 그것은 ABC와 aBc를 반환합니다. –
ABC와 aBc는 키가 아닌 값입니까? – tddmonkey
예. ABC와 aBc는 값입니다. TernarySearchTree가 어떻게 사용되고 있는지 TSTSearchEngine을 알려주세요. –