/spln1415-prefix-tree

Primeiro Trabalho Prático de SPLN, Mestrado em Engenharia Informática @ Universidade do Minho

Primary LanguagePerl

=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