T1 = mississippi = txt T2 = ississippi T3 = ssissippi T4 = sissippi T5 = issippi T6 = ssippi T7 = sippi T8 = ippi T9 = ppi T10 = pi T11 = i
T11 = i T8 = ippi T5 = issippi T2 = ississippi T1 = mississippi T10 = pi T9 = ppi T7 = sippi T4 = sissippi T6 = ssippi T3 = ssissippiSort at least O(n.log(n))-time, search at least O(log(n))-time.
tree-->|---mississippi
|
|---i-->|---ssi-->|---ssippi
| | |
| | |---ppi
| |
| |---ppi
|
|---s-->|----si-->|---ssippi
| | |
| | |---ppi
| |
| |----i--->|---ssippi
| |
| |---ppi
|--p-->|---pi
|
|---i
| © L . A l l i s o n |
tree1
tree-->----m...
Adding the second character to get `mi'
there are now suffixes `mi' and `i':
tree2
tree-->|---mi...
|
|---i...
Next `mis'
tree-->|---mis... -- tree3
|
|---is...
|
|---s...
There is no need to add any more splits for `miss' because `s' is part of `ss'.
tree-->|---miss... -- tree4
|
|---iss...
|
|---ss...
However, with `missi' there must be a split . . .
. . . split because one `s' is followed by `i', the other by `s'
tree-->|---missi... -- tree5
|
|---issi...
|
|---s-->|---si...
|
|---i...
[lecturer: demonstrate uses; class: take notes!]|
NB. Algorithm to build a S.T. in O(n)-time
is not examinable (but to build a S.T. as above "by hand", and applications of S.T. are examinable). |