Estrutura de dados

14 respostas
R

boa tarde pessoal.

seguinte:

pretendo ler um file de tipo dicionario com a seguinte estrutura:

ababadar:dobrar,enrugar,franzir,preguear,
ababalhado:babado,babujado,molhado,
ababelado:babélico,babêlico,confuso,desordenado,misturado,
ababelar:confundir,desordenar,desorganizar,misturar,
ababeíado:desordenado,

o file ocupa cerca de 1,5m.

gostava de saber qual a vossa opinião sobre a estrutura de dados que devo usar para armazenar toda essa informação.

desde ja obrigado a todos.

14 Respostas

R

Uma vez desenvolvi um tipo de compilador para códigos baseados em inteligência artificial e usei um método que analisava tudo e jogava dentro de um ArrayList… dai a partir deste array fazia toda a brincadeira…

Porém, utilizei isto pois o professor exigiu que usassemos uma estrutura de código própria, se você puder jogar tudo isso ai em XML e utilizar parsers, acho que ficaria bem melhor…

R

mas em termos de performance será uma boa escolha? Uma vez que esse dicionario vai ser inserido apartir de um file e depois não vai existir + inserções e uma vez que só vai ser necessario para fazer pesquisas.

se eu quiser utilizar isso do xml onde posso ver alguns exemplos praticos?

valew!

M

se tu vai usar só isso que tá ali…coloca num ArrayList mesmo…ou até em um simples vetor[] =)

R

o dicionario é um file com 1,5 mega.

por exemplo pra aceder a palavra rato ele teria de correr todo o vector? se for assim fica um pouco ineficiente.

mas caso ele va direto a palavra rato então é uma boa.

R

um XML acho que seria sua solução:

por exemplo:

<ababadar>
<significado> dobrar </significado>
</ababadar>

dai é só procurar pela tag ababadar e ve o significado, talvez até dê pra melhorar a estrutura desse XML… não sou muito especialista nisso…

dê uma lida nestes tutoriais…

http://www.guj.com.br/java.tutorial.artigo.19.1.guj
http://www.guj.com.br/java.tutorial.artigo.22.1.guj
http://www.guj.com.br/java.tutorial.artigo.144.1.guj

R

valew galera.

V

Calma, não é tão simples assim, por exemplo:

Se A significa B, é verdade que B também significa A?

Se A siginifica B e B significa C, é verdade que A também significa C, B significa A e C significa B?

Ou seja, seu dicionário é um dicionário inteligente ou um simples mapeamento de palavra(key) e significados(value) ?

Caso seja inteligente, vc deve implementá-lo com uma estrutura de grafos, caso contrário um simples java.util.Map de String (key) e java.util.List (value) é suficiente!

R

nao é inteligente não é mesmo um simple mapeamento d palavras.

mas essa estrutura de grafos é como arvore binaria só que com mais ramos?

se for era isso que eu tava procurando na net mas não sabia o nome em ingles :frowning:

se não for pedir muito vc podia me indicar alguns exemplos com esse tipo de estrutura?

muito obrigado.

V

“RogerTheRabbit”:
nao é inteligente não é mesmo um simple mapeamento d palavras.

  1. mas essa estrutura de grafos é como arvore binaria só que com mais ramos?

se for era isso que eu tava procurando na net mas não sabia o nome em ingles :frowning:

  1. se não for pedir muito vc podia me indicar alguns exemplos com esse tipo de estrutura?

muito obrigado.

  1. não, basicamente é um conjunto de nós conectados através de arestas que representam ligações uni ou bidirecionais entre os nós. http://www.inf.ufsc.br/grafos/

  2. // para criar o dicionario e inserir palavras/significados Map dicionario = new HashMap(); String palavra = "ababadar"; List significado = new ArrayList(); significado.add("dobrar"); significado.add("enrugar"); significado.add("franzir"); significado.add("preguear"); dicionario.put(palavra,significado); // para pegar os significados de "ababadar" List sig = (List) dicionario.get("ababadar"); // para verificar se "dobrar" é significado de "ababadar" if (sig.contains("dobrar") { // é significado }
    http://java.sun.com/j2se/1.4.2/docs/api/java/util/Map.html

Pegou o esquema como funciona!?

R

muito bom! obrigado a todos. Acho que com isso ai ja consigo resolver o problema!

valew!

M

“viecili”:
“RogerTheRabbit”:
1. mas essa estrutura de grafos é como arvore binaria só que com mais ramos?

se for era isso que eu tava procurando na net mas não sabia o nome em ingles :(

  1. não, basicamente é um conjunto de nós conectados através de arestas que representam ligações uni ou bidirecionais entre os nós. http://www.inf.ufsc.br/grafos/

[color=“indigo”]Mas isso não é uma árvore binária??? :roll: [/color]

V

“MarcelaR”:
“viecili”:
“RogerTheRabbit”:
1. mas essa estrutura de grafos é como arvore binaria só que com mais ramos?

se for era isso que eu tava procurando na net mas não sabia o nome em ingles :(

  1. não, basicamente é um conjunto de nós conectados através de arestas que representam ligações uni ou bidirecionais entre os nós. http://www.inf.ufsc.br/grafos/

[color=“indigo”]Mas isso não é uma árvore binária??? :roll: [/color]

Você pode usar grafos para implementar uma árvore binária, basta definir as ligações entre os nós com as mesmas regras estipuladas para uma árvore binária.

Definição de Grafos: http://www.inf.ufsc.br/grafos/definicoes/definicao.html

M

“viecili”:
“MarcelaR”:
“viecili”:
“RogerTheRabbit”:
1. mas essa estrutura de grafos é como arvore binaria só que com mais ramos?

se for era isso que eu tava procurando na net mas não sabia o nome em ingles :(

  1. não, basicamente é um conjunto de nós conectados através de arestas que representam ligações uni ou bidirecionais entre os nós. http://www.inf.ufsc.br/grafos/

[color=“indigo”]Mas isso não é uma árvore binária??? :roll: [/color]

Você pode usar grafos para implementar uma árvore binária, basta definir as ligações entre os nós com as mesmas regras estipuladas para uma árvore binária.

Definição de Grafos: http://www.inf.ufsc.br/grafos/definicoes/definicao.html

[color=“indigo”]Oi Viecili,

Eu sei o q é um grafo… já peguei essa matéria (por sinal tive q fazer o algorítmo do caminho hamiltoniano em Pascal :yarg:).

Eu só falei isso por conta da sua resposta ao RogerTheRabbit. Ele perguntou se isso era uma árvore binário e vc disse q não e deu exatamente a descrição de uma árvore binária… Foi só um toque. :wink: [/color]

V

ah… falha minha, não havia prestado atenção na parte q dizia q tinha mais ramos… hehehe

Criado 7 de junho de 2005
Ultima resposta 9 de jun. de 2005
Respostas 14
Participantes 5