Lecture 12 : Trie Data Structure Bong-Soo Sohn Assistant Professor School of Computer Science and...

Post on 03-Jan-2016

218 views 0 download

Transcript of Lecture 12 : Trie Data Structure Bong-Soo Sohn Assistant Professor School of Computer Science and...

Lecture 12 : Trie Data Structure

Bong-Soo Sohn

Assistant ProfessorSchool of Computer Science and Engineering

Chung-Ang University

Problem

Store this collection of words in a memory efficient way :

{abacus, abode, dreaded, dust, {abacus, abode, dreaded, dust, dusty, planar, east}dusty, planar, east}

Arrays

a ab c u s

a ob d e

d er a d de

d su t

d su t y

= 6 slots

= 5 slots

= 7 slots

= 4 slots

= 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 reretrietrievalval, but pronounced “try”

ExampleExample

u

d

e n

l

h

s t

o

g

l

i

e

m

go

shed

shell

sun

time

sheMake sure the word“she” is not found…

…unless it has been explicitly inserted!

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