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