Dicionário em Estruturas de Dados

5 respostas
D

Fala pessoal! Estou com o seguinte problema hoje: Preciso fazer um dicionário utilizando “Lista duplamente encadeada com Iteradores”. Mas é o seguinte, não sei nem por onde começar, se alguém pudesse me dar uma força de como começar, ou um código para interpretar ajudaria muito! Agradeço desde já.

5 Respostas

E

Dicionário quer dizer “dada uma palavra, quero saber sua definição”?

Ou seja, você teria algo como

“camarão” -> “Pequeno crustáceo decápode, macruro, comestível, muito frequente junto à costa marítima portuguesa, rias e embocaduras dos rios”
“desconfiado” -> “Que se agasta facilmente; que toma a mal, palavras ou actos inofensivos.”
“agastar” -> “Causar ou sentir irritação.”
“causar” -> “ser causa de, originar”

?

D

Exatamente, palavras com definição. Dei apenas a ideia inicial do que eu tenho que fazer, se quiser posso colocar a ideia inteira (é um pouco extensa). E não posso utilizar banco de dados… Não consegui achar nada parecido fazendo pesquisas, estou muito perdido.

E

Acho que seu professor queria que você fizesse na verdade uma tabela de espalhamento (hash table), que é o jeito “padrão” de resolver esse problema, mas como ela é um pouco complexa, deve ter pensado que é mais fácil fazer com uma lista duplamente encadeada.

Você pode fazer uma lista duplamente encadeada de objetos que pertençam a uma classe com os seguintes atributos: palavra, definição.

Não sei se seu professor quer que a lista fique sempre ordenada ou não (afinal de contas, um dicionário não fica em ordem alfabética?)

Você precisa bolar pelo 3 métodos: inserção, remoção e busca. Na prática, eu também gostaria que houvesse métodos “limpeza” (para limpar completamente o dicionário) e “modificação” (para mudar a definição de uma palavra). Mas os três primeiros já são suficientes.

Essa lista pode ser consultada varrendo-se a lista (usando, por exemplo, um iterador) até encontrar objeto cujo atributo “palavra” bata com a palavra desejada. Se a lista estiver ordenada, você pode desistir de olhar todas as palavras da lista se achar que há uma maior que a palavra desejada.

E

Isso foi de propósito, para evitar que o Dr. Google lhe desse a lição de casa prontinha - você precisa pensar um pouco, na verdade. É por isso que ele lhe passou esse exercício.

D

Na verdade eu tenho sérios problemas com programação, por culpa do curso de da faculdade também. Muita coisa é jogada, principalmente em programação.

Meu problema é que conheço muito pouco sobre iteradores e listas duplamente encadeadas e acabo dependendo muito de códigos da internet ou mesmo de livros para tentar pensar em cima, o que é complicado. De qualquer modo sua ideia já me deu um rumo de pensamento, vou ao longo do mês produzindo alguma coisa, conforme for encontrar problemas coloco o código aqui. Obrigado!

Criado 29 de agosto de 2012
Ultima resposta 29 de ago. de 2012
Respostas 5
Participantes 2