no soy capaz de entender cómo ese árbol se genera a partir de la cadena de entrada dada.
Básicamente crea un patricia trie con todos los sufijos que ha enumerado. Al insertar en un archivo patricia, busca en la raíz de un niño comenzando con el primer carácter de la cadena de entrada, si existe, continúa hacia abajo del árbol, pero si no lo hace, entonces crea un nuevo nodo fuera de la raíz.La raíz tendrá tantos hijos como caracteres únicos en la cadena de entrada ($, a, e, h, i, n, r, s, t, w). Puede continuar ese proceso para cada carácter en la cadena de entrada.
Los árboles de sufijo se utilizan para encontrar una subcadena dada en una cadena dada, pero ¿cómo ayuda el árbol dado a eso?
Si está buscando una subcadena "gallina", entonces comience la búsqueda desde la raíz de un niño que comienza con "h". Si la longitud de la cadena de "h" en el niño continúa procesando el niño "h" hasta que haya llegado al final de la cadena o si hay una falta de coincidencia de caracteres en la cadena de entrada y la cadena "h" infantil. Si empareja todo el niño "h", es decir, ingresa "gallina" que coincide con "él" en el niño "h" y luego pasa a los niños de "h" hasta llegar a "n", si no encuentra un niño comenzando con "n", entonces la subcadena no existe.
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$
He encontrado estos 2 videos muy útiles en la comprensión de los árboles de sufijos. http://www.youtube.com/watch?v=VA9m_l6LpwI & http://www.youtube.com/watch?v=F3nbY3hIDLQ#t=2360 – spats