The reasytries package contains classes and functions that efficiently store and search words passed by the user based on a trie data structure.
This package was developed as a project for UBC MDS-Vancouver program DSCI 524 course.
This package is not yet available on CRAN. Therefore, you will have to install the latest version of reasytries from GitHub with:
# install.packages("devtools")
devtools::install_github("UBC-MDS/reasytries")
Storing and searching words can be expensive in terms of time and
computing: for example, using a balanced binary search tree, the time
complexity for searching a word is (O(mlogn)), where (m) is the
length of the word and (n) is the number of keys in the tree. However,
with the trie data structure, the time complexity for searching can be
reduced to (O(m)). The reasytries
package is a simple tool to aid
word insertion, deletion, and searching in the trie data structure.
Users can pass any words to be stored for later-on searching or printing
with certain prefix, and even modify the words in storage.
The official documentation can be found here
Classes
Class Trie
: Conceptual class representation of a trie
Functions
-
trie_create()
function initializes an empty trie -
trie_add(trie, word_to_add)
function takes in a trie and a word_to_add to store each letter of the new word in the trie data structure. -
trie_contain(trie, word)
function takes in a trie and a word to search through the trie structure and check if the word has been stored in the trie already. -
trie_find_prefix(trie, prefix)
function takes in a trie and a prefix to search through the trie structure and return a list of all word stored with the given prefix. -
trie_delete(trie, word_to_delete)
function takes in a trie and a word_to_delete to remove the letters of the word if they are contained in the trie already. The function returnsFALSE
when the trie does not contain the word_to_delete.
This reasytries
package aims to simplify and speed up the process of
searching through a dictionary. In addition to time complexity benefits,
a tries data structure also allows to search for given words inside the
fixed dictionary when given a prefix. Users who are building a
search/filter bar from a fixed dictionary will find this package
useful! As trie is a famous data structure, there are currently some
simple trie packages in R such as
trie.