Lista duplamente encadeada

13. Re: Lista duplamente encadeada

joao pedro ache virgili
joaovirgili

(usa Ubuntu)

Enviado em 25/03/2016 - 12:18h


Se você não vai usar o valor retornado pela função, poderia simplesmente não retornar nada (tipo de retorno void).

É que, por exemplo na função Pesquisa (int x), caso ele encontre o valor requisitado na lista, já retorna true e finaliza função. Nesse caso, estou economizando memória, não? Se fosse uma função void, teria um modo de fazer a função parar também? Assim como tem break

Sobre sinalizar erros: entendi um pouco mais, não quero tomar muito seu tempo e nem ter nada de mão beijada então vou me aprofundar e pesquisar sobre isso. Captei o que você falou e realmente parece uma opção extremamente útil.

Se você usa Primeiro->Prox para aceder ao primeiro elemento, não deveria também, por simetria, usar Ultimo->Ant para designar o último, especialmente numa lista duplamente encadeada? Só que você não faz isso, e as coisas funcionam. Isso necessariamente implica, por simetria, que pode também usar Primeiro diretamente para aceder ao primeiro elemento de fato.

Em tempo: quando eu estudei listas encadeadas na faculdade (e não era faculdade varejão-do-ensino, não; eu estudei na UFRJ), fizeram a mesma coisa que o cara do YouTube cujo vídeo você viu. E eu sempre achei um desperdício um nó alocado e sem uso, a não ser pelo ponteiro. Numa estrutura simples (como a sua, cujo dado é apenas um valor inteiro), isso pode ser pouco relevante, e menos relevante ainda quando se está num sistema com vários gigabytes de memória. Mas a coisa não é bem assim quando o dado é complexo e volumoso, ou quando se está num sistema de pequeno porte, como hardware embarcado usando microcontroladores com quantidade de memória que às vezes é menor do que 1kiB.

Mais tarde eu entendi, quando tentei por conta própria implementar uma lista sem o desperdício, que fazer do modo como foi mostrado na faculdade ajudava a simplificar algumas operações. Na verdade, talvez fosse o único meio de fazer lá na faculdade, usando aquela linguagem fedorenta chamada Pascal (que era o que se ensinava nas faculdades brasileiras em 1991 -- e era Pascal ISO, nem era o Turbo Pascal, que era um pouquinho mais amigável). Mas, em C, certamente dá para fazer melhor.


É, realmente é um desperdício de memoria usada, vou tentar implementar de outra forma, como vc havia dito, fazendo com que o Primeiro realmente seja o Primeiro item, ao invés de ele apenas sinalizar quem for o primeiro item.
Eu estudo na UFBA, os professores que peguei de programação eu gostei, mas esse de Estrutura de Dados não to gostando muito, ele não explica muito bem, aí fico pesquisando em casa pra aprender sozinho mesmo. Ah, no primeiro semestre aprendi Pascal também hahaha, como ja tinha estudado C antes de entrar na faculdade, achava Pascal bem chato.

considerações finais: desculpa ter tomado tanto se tempo, mas muito obrigado por isso! É bom ver que nos dias de hoje existem pessoas que prezam por repassar conhecimento e ajudar aos outros sem nenhum retorno.


  



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts