Trie

related topics
{math, number, function}
{language, word, form}
{system, computer, user}
{woman, child, man}
{style, bgcolor, rowspan}
{group, member, jewish}

In computer science, a trie, or prefix tree, is an ordered tree data structure that is used to store an associative array where the keys are usually strings. Unlike a binary search tree, no node in the tree stores the key associated with that node; instead, its position in the tree shows what key it is associated with. All the descendants of a node have a common prefix of the string associated with that node, and the root is associated with the empty string. Values are normally not associated with every node, only with leaves and some inner nodes that correspond to keys of interest.

The term trie comes from "retrieval." Following the etymology, the inventor, Edward Fredkin, pronounces it /ˈtriː/ "tree".[1][2] However, it is pronounced /ˈtraɪ/ "try" by other authors.[1][2][3]

In the example shown, keys are listed in the nodes and values below them. Each complete English word has an arbitrary integer value associated with it. A trie can be seen as a deterministic finite automaton, although the symbol on each edge is often implicit in the order of the branches.

It is not necessary for keys to be explicitly stored in nodes. (In the figure, words are shown only to illustrate how the trie works.)

Though it is most common, tries need not be keyed by character strings. The same algorithms can easily be adapted to serve similar functions of ordered lists of any construct, e.g., permutations on a list of digits or shapes. In particular, a bitwise trie is keyed on the individual bits making up a short, fixed size of bits such as an integer number or pointer to memory.

Contents

Full article ▸

related documents
ML (programming language)
Merkle-Hellman
Boolean ring
Definable real number
Generalized mean
Chain rule
Base (topology)
Preorder
Presburger arithmetic
Idempotence
Ring (mathematics)
Assignment problem
Monster group
Outer product
Pigeonhole principle
Oracle machine
Richard's paradox
Extended real number line
2 (number)
Meromorphic function
Splitting lemma
Queue (data structure)
Haar measure
Unicity distance
XSL Transformations
Riemann mapping theorem
Axiom of pairing
B-tree
Mathematical model
Legendre symbol