lec-20,21 tries data structure - Copy
lec-20,21 tries data structure - Copy
T S
H I I
E I N N
$ N N S $ $ G
$ $ $ $
Tries: Example
Tries are appropriate when many words begin
with the same sequence of letters.
i.e; when the number of distinct prefixes
among all words in the set is much less than
the total length of all the words.
Each path from the root to the leaf
corresponds to one word in the represented
set.
Nodes of the trie correspond to the prefixes of
words in the set.
Tries: Example
The symbol $ is added at the end of each word
so that no prefix of a word can be a word itself.
The Trie corresponds to the set {THE,THEN
THIN, TIN, SIN, SING}
Each node has at most 27 children, one for
each letter and $
Most nodes will have many fewer than 27
children.
A leaf reached by an edge labeled $ cannot
have any children.
Tries nodes as ADT
A node in a trie can be viewed as:
Mapping whose domain is {A,B,…Z, $}
And whose value set is the type “Pointer
to trie node”.
A trie can be identified with its root.
=> ADT’s TRIE and TRIENODE have the
same data type.
However, there operations are different.
Operations on Tries nodes
ASSIGN(node,c,p): Assign value p (a
pointer to a node) to character c in node
node.
VALUEOF(node, c): Produce the value
associated with character c in node.
GETNEW(node, c): Make the value of
node for character c be a pointer to a
new node.
MAKENULL(node): Makes node to be
null mapping.
Sets
A Set is a collection of members (or
elements).