@clarketm/supertrie
Version:
Trie with superpowers! 💪
133 lines (79 loc) • 3.31 kB
Markdown
# [Trie](https://www.npmjs.com/package/@clarketm/supertrie)
[](https://www.npmjs.com/package/@clarketm/supertrie)
Trie with superpowers! 💪
## Individual Module Installation
### Yarn
```bash
$ yarn add @clarketm/supertrie
```
### Npm
```bash
$ npm install @clarketm/supertrie --save
```
## API
### `constructor(iterable: Iterable<string>)`
Construct a Trie
### `root: TrieNode`
Get the root of the trie
### `insert(word: string)`
Insert a string into the trie
| Name | Type | Attribute | Description |
| ---- | ------ | --------- | ---------------- |
| word | string | | string to insert |
### `remove(word: string)`
Remove a string from the trie
| Name | Type | Attribute | Description |
| ---- | ------ | --------- | ---------------- |
| word | string | | string to remove |
### `search(query: string): Match`
Search for a node in the trie matching the query
| Name | Type | Attribute | Description |
| ----- | ------ | --------- | -------------------------- |
| query | string | | string query to search for |
### `includes(word: string): boolean`
Check if the trie includes a word
| Name | Type | Attribute | Description |
| ---- | ------ | --------- | ----------------------- |
| word | string | | full word to search for |
### `contains(word: string): boolean`
> Alias to `includes(word)`
Check if the trie contains a word
| Name | Type | Attribute | Description |
| ---- | ------ | --------- | ----------------------- |
| word | string | | full word to search for |
### `startsWith(prefix: string): boolean`
Check if the trie contains a prefix
| Name | Type | Attribute | Description |
| ------ | ------ | --------- | ---------------------------------------- |
| prefix | string | | prefix (i.e. partial word) to search for |
## `TrieNode`
TrieNode
### `constructor(char: character)`
Construct a TrieNode
### `count: number`
Get children count of the node
### `char: character`
Get character value of node
### `isCompleteWord: boolean`
Checks if node is a complete word
### `has(char: character): boolean`
Check if node has a specific character as a child
| Name | Type | Attribute | Description |
| ---- | --------- | ------------------ | ----------- |
| char | character | character to check |
### `get(char: character): TrieNode`
Get child node with specific character value
| Name | Type | Attribute | Description |
| ---- | --------- | --------- | ---------------- |
| char | character | | character to get |
### `set(char: character, node: TrieNode)`
Set child node with specific character value
| Name | Type | Attribute | Description |
| ---- | --------- | --------- | --------------------------- |
| char | character | | character to set |
| node | TrieNode | | node to assign to character |
### `delete(char: character)`
Delete child node with specific character value
| Name | Type | Attribute | Description |
| ---- | --------- | --------- | ------------------- |
| char | character | | character to delete |