효율적인 검색 및 삽입을 지원하는 동적 문자열 용 문자열 조회 데이터 구조를 구현하고 싶습니다. 현재는 트라이를 사용하고 있지만 가능한 경우 메모리 사용 공간을 줄이려고합니다. This Wikipedia article은 DAWG/DAFSA를 설명하며 접미어를 압축하여 많은 공간을 절약합니다. 그러나 문자열이 합법적인지 여부를 명확하게 테스트하지만 불법 문자열을 제외 할 수있는 방법이 있는지는 분명하지 않습니다. 예를 들어, 단어 "인용"와 "고양이"는 "t"와 "E"를 사용하여 단말기 상태가하는 개같은은/DAFSA는 다음과 같이 보일 것이다 :DAWG/DAFSA의 메타 정보
c
/\
a i
\/
t
|
e
와 "CIT"와 "케이트를" 일부 메타 정보가없는 올바른 문자열로 잘못 인식됩니다.
질문 :
1) 임마/DAFSA 이러한 적법성과 같은 문자열/경로()에 대한 메타 정보를 저장하기 위해 선호하는 방법이 있나요?
2) DAWG/DAFSA가 요구 사항 (효율적인 검색/삽입 및 메타 정보 저장)과 호환되지 않는 경우 사용할 수있는 최상의 데이터 구조는 무엇입니까? 최소한의 메모리 공간 만 있으면 좋겠지 만 절대적으로 필요한 것은 아닙니다.
확실히 도움이됩니다. 많은 감사합니다. 위키 피 디아 (Wikipedia) 기사는 위양성/음화 문제를 전혀 다루지 않았습니다. 내 문자열은 영어 단어에만 국한되지 않으므로 일부 정리 (pruning) 또는 기타 유지 관리를 계획하지 않고도 trie를 구현하면 장기적인 결과가 발생할 수 있으므로 일부 압축을 구현하는 것에 대해 궁금합니다. – Schemer
26 MB가 적당 할 수 있지만 메모리 사용 공간을 줄이는 반면 사전의 비율이 높으면 캐시에 적합하기 때문에 조회 시간이 향상 될 수 있습니다. –