LINUX System (English

Download Report

Transcript LINUX System (English

Lecture 12 : Trie Data Structure
Bong-Soo Sohn
Assistant Professor
School of Computer Science and Engineering
Chung-Ang University
Problem

Store this collection of words in a memory
efficient way :
{abacus, abode, dreaded, dust, dusty, planar,
east}
Arrays
a
b
a
c
u
a
b
o
d
e
d
r
e
a
d
d
u
s
t
d
u
s
t
= 6 slots
s
= 5 slots
e
d
= 7 slots
= 4 slots
y
= 5 slots
Idea

Take advantage of the common letters in
the words

Reduce redundancy
Use same letter for more than one word

Trie

Store characters (digits) in each node, not keys.
 Path from root to a node is associated with a
key
 Use characters of the key to guide the search
process
 All the descendants of a node have a common
prefix of the string associated with that node

From retrieval, but pronounced “try”
Example
g
s
o
h
t
i
u
go
Make sure the word
“she” is not found…
she
e
m
n
sun
d
l
e
…unless it has been
explicitly inserted! shed
time
l
shell
example

A trie for keys "t", "to", "te", "tea", "ten",
"i", "in", and "inn".
Advantages






Looking up keys is faster. O(m) time.
A BST takes O(log n) time
m : length of key , n : # of elements
In the worst case, log(n) will approach m
Tries can require less space when they contain a
large number of short strings
Longest prefix matching is possible


finding the key sharing the longest possible prefix of
characters all unique
Fast search/insert/delete
Drawbacks

Tries can be slower in some cases.


Especially when the tree is accessed from disk
It is not easy to represent all keys as strings


Floating point numbers (1.0 , +1.0, 1 …)
Inefficient when a key is too long
Applications

Can replace a hash table






Only take O(m) , m : length of key
No collision
No need to provide hash function
Can provide an alphabetical ordering of keys
Dictionary
IP routing



Routing : process of selecting paths in a network along which to
send network traffic
when given a destination address, find next place(place) to go.
Internet router table is a collection of rules of the form (P, NH),

P : prefix, NH : next hop