Lec-20,21 Tries Data Structure
Lec-20,21 Tries Data Structure
Visit: tshahab.blogspot.com
Tries
Trie is a special structure to represent
sets of character strings.
Can also be used to represent data types
that are objects of any type e.g. strings of
integers.
The word “trie” is derived from the
middle letters of the word “retrieval”.
Tries: Example
One way to implement a spelling checker is
Read a text file.
Break it into words( character strings
separated by blanks and new lines).
Find those words not in a standard
dictionary of words.
Words in the text but not in the dictionary
are printed out as possible misspellings.
Tries: Example
It can be implemented by a set having
operations of :
INSERT
DELETE
MAKENULL
PRINT
A Trie structure supports these set operations
when the element of the set are words.
Tries: Example
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).