irem
Version:
Search for any city in any language in Earth.
38 lines (37 loc) • 1.24 kB
TypeScript
interface EncodedTrieNode {
c?: Record<string, EncodedTrieNode>;
l?: number[];
}
export declare class Trie {
root: EncodedTrieNode;
createNode(): EncodedTrieNode;
constructor();
insert(word: string, lineNumber: number, isNormalize?: boolean): void;
findPrefix(query: string): EncodedTrieNode | null;
findLastNodeMatch(query: string): {
currentNode: EncodedTrieNode;
i: number;
};
autocomplete(query: string, maxResultCount?: number): Set<number>;
/**
* collects line numbers in `resultSet`
*
* @param {TrieNode} currentNode
* @param {Set<number>} resultSet
* @param {number} [maxResultCount=10]
*/
collectLineNumbersWithBFS(currentNode: EncodedTrieNode, resultSet: Set<number>, maxResultCount?: number): void;
searchPrefix(query: string): number[] | null;
/**
* built Trie data structure from gzipped JSON serialization
*
* @async
* @param {string} filePath
* @returns {*}
*/
loadFromJson(filePath: string): Promise<void>;
static buildTrieFromTSV(tsvFilePath: string): Trie;
static trieToJson(trie: Trie): EncodedTrieNode;
static convertDataToGzippedTrieJSON(): Promise<void>;
}
export {};