Dúvida estrutura de dados java

2 respostas
A

Em java, qual seria a melhor opçõa de estrutura de dados pra resolver esse problema:

Escreva um programa de referência cruzada com todas as palavras incluídas a partir de um documento de texto que é lido pelo programa. A estutura de dados deve permitir busca eficiente de uma determinada palavra. Além disso devem permitir prioridades de modo que substantivos propios tenham prioridade sobre comuns que por sua vez devem ter prioridade sobre verbos e adjetivos. Demais palavras com classe gramatical diferentes devem ser ignoradas. Por fim o programa deve permitir a geração de um indice remissivo listando todas as palavras em ordem alfabetica e seguindo as prioridades acima.

Fila de prioridades? Heap? Sugestão de como implementa - las?

2 Respostas

gpd38

Eu usaria uma combinação das duas.

Ordenação das informações e colocava os indices dos objetos em filas de prioridade para realizar a busca

http://www.caelum.com.br/apostila-java-estrutura-dados/filas/

http://dietinf.ifrn.edu.br/lib/exe/fetch.php?media=corpodocente:jailton:ed_aula010_-_fila_prioridade.pdf

http://www.guj.com.br/java/215282-ordenar-string

http://www.ime.usp.br/~pf/analise_de_algoritmos/aulas/priority.html

douglaskd

andreteixeira:
Em java, qual seria a melhor opçõa de estrutura de dados pra resolver esse problema:

Escreva um programa de referência cruzada com todas as palavras incluídas a partir de um documento de texto que é lido pelo programa. A estutura de dados deve permitir busca eficiente de uma determinada palavra. Além disso devem permitir prioridades de modo que substantivos propios tenham prioridade sobre comuns que por sua vez devem ter prioridade sobre verbos e adjetivos. Demais palavras com classe gramatical diferentes devem ser ignoradas. Por fim o programa deve permitir a geração de um indice remissivo listando todas as palavras em ordem alfabetica e seguindo as prioridades acima.

Fila de prioridades? Heap? Sugestão de como implementa - las?

Acredito que as palavras não iram se repetir dentro da estrutura…

sendo assim, a recomendada é a SET, dentro da SET temos a HashSet, LinkedHashSet e TreeSet.

como o treeSet, apesar de ser um pouco mais lento do que os outros ja ordena os dados na inserção

  • crie um objeto chamado Palavra que tenha os atributos: string Nome, string Significado, Tipo você vai precisar implementar a classe Comparable,

  • vá no método compare(Palavra outraPalavra) da sua classe palavra e pense no seguinte:

se o tipo do objeto a ser comparado for igual…então eu eu faço return this.Nome.compareTo(outraPalavra.Nome);

faça os outros testes para gravar substantivos…palavras ordenadas…substantivos simples…palavras ordenadas e assim por diante…

pense…eu preciso comparar o tipo, e depois a palavra ok ?

int tipo é o que vai definir a prioridade da palavra.


OBS: pensei melhor, não precisa usar ifs dentro do compare !, operações matematicas ja resolvem…

Criado 18 de setembro de 2013
Ultima resposta 18 de set. de 2013
Respostas 2
Participantes 3