Я не могу понять, как это дерево генерируется из данной входной строки.
Вы по существу создаете патрицию со всеми суффиксами, которые вы указали. При вставке в patricia trie вы выполняете поиск корня для дочернего элемента, начинающегося с первого символа из входной строки, если он существует, вы продолжаете движение по дереву, но если это не так, вы создаете новый узел из корня.Корень будет иметь столько же детей, сколько уникальных символов во входной строке ($, a, e, h, i, n, r, s, t, w). Вы можете продолжить этот процесс для каждого символа во входной строке.
Деревни суффикса используются для нахождения данной подстроки в данной строке, но как данное дерево помогает в этом?
Если вы ищете подстроку «курица», затем начинайте поиск с корня для ребенка, который начинается с «h». Если длина строки в дочернем «h» затем продолжит обработку дочернего «h» до тех пор, пока вы не дойдете до конца строки или не получите несоответствие символов в строке ввода и дочерней строке «h». Если вы соответствуете всем дочерним «h», то есть вход «hen» соответствует «he» в дочернем «h», затем переходите к детям «h», пока не дойдете до «n», если он не сможет найти начало ребенка с "n", то подстрока не существует.
Compact Suffix Trie code:
└── (black)
├── (white) as
├── (white) e
│ ├── (white) eir
│ ├── (white) en
│ └── (white) ere
├── (white) he
│ ├── (white) heir
│ ├── (white) hen
│ └── (white) here
├── (white) ir
├── (white) n
├── (white) r
│ └── (white) re
├── (white) s
├── (white) the
│ ├── (white) their
│ └── (white) there
└── (black) w
├── (white) was
└── (white) when
Suffix Tree code:
String = the$their$there$was$when$
End of word character = $
└── (0)
├── (22) $
├── (25) as$
├── (9) e
│ ├── (10) ir$
│ ├── (32) n$
│ └── (17) re$
├── (7) he
│ ├── (2) $
│ ├── (8) ir$
│ ├── (31) n$
│ └── (16) re$
├── (11) ir$
├── (33) n$
├── (18) r
│ ├── (12) $
│ └── (19) e$
├── (26) s$
├── (5) the
│ ├── (1) $
│ ├── (6) ir$
│ └── (15) re$
└── (29) w
├── (24) as$
└── (30) hen$
Я нашел эти 2 видео очень полезны для понимания суффиксов деревьев. http://www.youtube.com/watch?v=VA9m_l6LpwI & http://www.youtube.com/watch?v=F3nbY3hIDLQ#t=2360 – spats