Package Exports
- @datastructures-js/trie
- @datastructures-js/trie/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@datastructures-js/trie) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@datastructures-js/trie
Trie implementation in javascript. Each Trie node holds one character of a word.

Contents
Install
npm install --save @datastructures-js/trie
require
const { Trie, TrieNode } = require('@datastructures-js/trie');
import
import { Trie, TrieNode } from '@datastructures-js/trie';
API
constructor
const dictionary = new Trie();
insert
insert the string form of value (value.toString()
) into the trie.
Note: the empty string is not a default word in the trie. empty word can be added by explicitly calling .insert('')
dictionary
.insert('hi')
.insert('hit')
.insert('hide')
.insert('hello')
.insert('sand')
.insert('safe')
.insert('noun')
.insert('name');
has
checks if a word exists in the trie.
dictionary.has('hi'); // true
dictionary.has('sky'); // false
find
finds a word in the trie and returns the node of its last character.
const hi = dictionary.find('hi');
// hi.getChar() = 'i'
// hi.getParent().getChar() = 'h'
const safe = dictionary.find('safe');
// safe.getChar() = 'e'
// safe.getParent().getChar() = 'f'
// safe.getParent().getParent().getChar() = 'a'
const nothing = dictionary.find('nothing'); // null
remove
removes a word from the trie.
dictionary.remove('hi'); // hi
// none existing word
dictionary.remove('sky'); // null
forEach
traverses all words in the trie.
dictionary.forEach((word) => console.log(word));
/*
hit
hide
hello
sand
safe
noun
name
*/
toArray
converts the trie into an array of words.
console.log(dictionary.toArray());
// ['hit', 'hide', 'hello', 'sand', 'safe', 'noun', 'name']
wordsCount
gets the count of words in the trie.
console.log(dictionary.wordsCount()); // 7
nodesCount
gets the count of nodes in the trie.
console.log(dictionary.nodesCount()); // 23
clear
clears the trie.
dictionary.clear();
console.log(dictionary.wordsCount()); // 0
console.log(dictionary.nodesCount()); // 1
Trie.fromArray
converts an existing array of values into a trie.
const numbersTrie = Trie.fromArray([1, 32, 123, 21, 222, 132, 111, 312]);
console.log(numbersTrie.wordsCount()); // 8
console.log(numbersTrie.has('132')); // true
console.log(numbersTrie.has(123)); // true
TrieNode
isRoot()
checks if node is root.
isLeaf()
checks if has no children.
getChar()
gets the node's char.
getParent()
gets the node's parent node.
setParent(node: TrieNode)
sets the node's parent node.
isEndOfWord()
checks if node's char is last in a word.
setEndOfWord(endOfWord: boolean)
sets if node's char is last in a word.
getChild(char: string)
gets the node's child from a char.
hasChild(char: string)
checks if the node has a child from a char.
childrenCount()
gets the node's children count.
Build
grunt build
License
The MIT License. Full License is here