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á.
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”
?
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.
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.
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.
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!