=encoding utf8 =head1 NAME PrefixTree - Árvore de prefixos em perl =head1 CONTEXT Primeiro Trabalho Prático de SPLN, Mestrado em Engenharia Informática @ Universidade do Minho =head1 SYNOPSIS use Data::Dumper; use PrefixTree; # Cria um objecto e inicializa-o com dois ficheiros sendo o primeiro # em texto e o segundo compactado com o comando bzip2 my $pt = new PrefixTree(qw {smalldict.txt dic.bz2}); # Adiciona algumas palavras $pt->add_word($_) for (qw {aba abaco abeto abrir aberto abertura}); print Dumper($pt); # Imprime todas as palavras que tenham os prefixos ab e ap printf("%s: %s\n", $_, join(" ", $pt->get_words_with_prefix($_))) for (qw {ab ap}); =head1 DESCRIPTION Uma árvore de prefixos armazena todos os prefixos das palavras introduzidas. Uma das grandes vantagens desta estrutura é que serve para armazenar uma lista de palavras de uma forma compacta. =head1 EXPORT =head2 new O construtor que poderá receber vários argumentos, sendo cada argumento o nome de um ficheiro. Caso estes ficheiros tenham a extensão .gz ou .bz2 então o ficheiro está compactado e deverá ser aberto usando os comandos gunzip ou bunzip2 respetivamente =head2 save Este método permite armazenar (existe um módulo chamado Storable1) o objeto em disco =head2 load Este método permite consultar o objeto guardado previamente com o método save =head2 add_dict Este método permite adicionar mais ficheiros (deve-se usar mais uma vez a estratégia acima) =head2 add_word Este método permite adicionar mais uma palavra =head2 rem_word Este método permite remover uma palavra =head2 get_words_with_prefix Este método devolve uma lista de todas as palavras que contenham um dado prefixo =head2 prefix_exists Este método devolve verdadeiro ou falso caso o prefixo exista no dicionário =head2 word_exists Este método devolve verdadeiro ou falso caso a palavra exista no dicionário =head1 SEE ALSO Enunciado do exercício: https://github.com/rcm/spln1415/tree/master/aula05 Repositório de código: https://github.com/chalkos/spln1415-prefix-tree =head1 AUTHORS Bruno Ferreira, https://github.com/chalkos Miguel Pinto, https://github.com/miguelpinto98
chalkos/spln1415-prefix-tree
Primeiro Trabalho Prático de SPLN, Mestrado em Engenharia Informática @ Universidade do Minho
Perl