Beruflich Dokumente
Kultur Dokumente
e
mize
i
nimize
mi
ze
nimize
Tries
nimize
ze
ze
Preprocessing Strings
Preprocessing the pattern speeds up pattern
matching queries
Tries
Standard Tries
The standard trie for a set of strings S is an ordered tree such
that:
b
e
u
l
l
Tries
c
k
p
3
u
l
l
Tries
c
k
p
4
78
s e e
b e a r ?
s e l
s t o c k !
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
s e e
b u l
l ?
b u y
s t o c k !
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
b i d
s t o c k !
b i d
s t o c k !
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
h e a r
t h e
b e l
l ?
s t o p !
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
i
d
47, 58
u
l
l
e
y
36
a
r
69
30
Tries
e
e
0, 24
t
l
l
12
o
c
k
17, 40,
51, 62
p
84
Compressed Tries
A compressed trie has
internal nodes of
degree at least two
It is obtained from
ar
standard trie by
compressing chains of
redundant nodes
b
e
id
ll
ell
y
to
ck
u
ll
b
e
u
l
l
Tries
c
k
p
6
Compressed Trie
b
Example
e
ar
id
ll
u
l
l
c
k
ell
to
ck
u
ll
b
e
Compact Tries
Compact representation of a compressed trie
Approach
Properties
Compact Representation
Compact representation of a compressed trie for an array of
strings:
S[2] =
s e e
b e a r
s e l l
S[3] =
s t o c k
S[0] =
S[1] =
0 1 2 3
S[4] =
S[5] =
S[6] =
1, 0, 0
1, 1, 1
1, 2, 3
4, 1, 1
4, 2, 3
h e a r
b e l l
s t o p
S[7] =
S[8] =
S[9] =
0, 0, 0
7, 0, 3
6, 1, 2
8, 2, 3
b u l l
b u y
b i d
0 1 2 3
0, 1, 1
5, 2, 2
Tries
0, 2, 2
3, 1, 2
2, 2, 3
3, 3, 4
9, 3, 3
9
Compact Representation
0 1 2 3 4
0 1 2 3
S[4] =
S[1] =
s e e
b e a r
S[2] =
s e l l
S[3] =
s t o c k
S[0] =
S[7] =
S[5] =
b u l l
b u y
S[8] =
h e a r
b e l l
S[6] =
b i d
S[9] =
s t o p
1, 0, 0
1, 1, 1
1, 2, 3
6, 1, 2
8, 2, 3
0 1 2 3
0, 0, 0
7, 0, 3
4, 1, 1
4, 2, 3
5, 2, 2
0, 1, 1
0, 2, 2
2, 2, 3
3, 1, 2
3, 3, 4
9, 3, 3
Suffix Trie
The suffix trie of a string X is the compressed trie of all
the suffixes of X
m i n i m i z e
0 1 2 3 4 5 6 7
e
mize
i
nimize
mi
ze
nimize
Tries
nimize
ze
ze
11
m i n i m i z e
0 1 2 3 4 5 6 7
7, 7
4, 7
2004 Goodrich, Tamassia
1, 1
2, 7
0, 1
6, 7
2, 7
Tries
2, 7
6, 7
6, 7
12
X : X[1..m]
Y: Y[1..n] two input strings
C: [1..p] is the Common subsequence
Example: x = abcde
LCS : bcd,
ad
y = bceaqd
bce
if xi = yj then
LCS(i,j) = 1 + LCS(i-1,j-1)
if xi yj then
LCS(i,j) = max (LCS(i-1,j),LCS(i,j-1))
2004 Goodrich, Tamassia