PARTE 1:
VS-AS(SA, LCP): recebe o vetor de sufixos SA e LCP de um texto T
e constroi e devolve a árvore de sufixos do texto T
Search(r, P): devolve true se P ocorre no texto T e false caso contrário;
faz a busca na árvore de sufixos r de T.
Occurrences(r, P): devolve a lista de posição em que P aparece em T,
obtida usando a árvore de sufixos r de T.
NOccurrences(r, P): devolve o número de ocorrências de P em T,
obtido usando a árvore de sufixos r de T.
PrintVS-AS(SA, LCP, r): imprime o SA e o LCP usados na construção
da árvore de sufixos r e imprime a árvore de sufixos r em posordem,
com os índices dos rótulos de cada aresta e índice de sufixo de cada folha.
PARTE 2:
AS-VS(r): recebe a árvore de sufixos r de um texto T e constrói e
devolve o vetor de sufixos de T e o vetor LCP correspondente.
PrintAS-VS(r, SA, LCP): imprime a árvore de sufixos r, usada na construção
no formato usado em PrintVS-AS) e os vetores SA e LCP construídos a partir dela.
Codificação das operações:
1 <T> significa construir SA e LPC para T por força-bruta (como na T8)
e acionar AS-VS() para obter a árvore de sufixos r de T
2 <nome de um arquivo texto> significa, para o texto T que encontra-se no arquivo discriminado,
construir SA e LPC para T por força-bruta (como na T8)
e acionar AS-VS() para obter a árvore de sufixos r de T.
3 <P> significa Search(r, P)
4 <P> significa Occurrences(r, P)
5 <P> significa NOccurrences(r, P)
6 significa PrintVS-AS(SA, LCP, r)
7 significa PrintAS-VS(r, SA, LCP), onde SA e LPC foram obtidos de AS-VS(r)
Exemplo de entrada para o programa de testes:
1 abracadabra 3 abra 4 bra 5 abSaída esperada para este teste:
True 1 8 2