1 – 9 de 9
Blogger steniovm disse...

em "Inserindo um nó no meio da lista" voce escreveu:
Agora fazemos com que o primeiro ponteiro deixe apontar para o nó 2 e aponte para o novo nó, o nó 4.
E agora fazemos com que o nó 4 aponte para o nó 2.

não seria ao contrário? primeiro fazer o nó 4 apontar para 2 e depois o nó 1 apontar para 4, porque se fizermos o nó 1 apontar para o 4 de cara não vamos ter ninguem apontando para o 2 e ele ficará perdido sem termos acesso a ele.

outra coisa, quando excluimos um nó temos que fazer quem está apontando pra ele deixar de apontar pra ele, até ai blz, mas e o contrário? queria saber se realmente é necessario fazer ele apontar pra null? qual o problema de excluir um nó que aponta pra outro?

18 de outubro de 2013 às 10:22

Anônimo Apostila C Progressivo disse...

Bem notado steniovm,

Porém a gente tá falando aqui só por cima. Mas na hora de implementar mesmo, nós vamos usar ponteiros auxiliares para ficarem armazenando endereços para que não se percam, e outros para ficarem percorrendo a lista.

Por exemplo, para tirar um nó da lista vamos usar dois ponteiros que vão percorrer a lista até acharmos o elemento que vamos retirar. Fazemos um deles apontar para esse elemento que vai sair da lista, e o outro ponteiro aponta para o elemento anterior.

Então, à rigor, não é exatamente como está exibido aqui. Não que esteja errado, apenas tentamos dar uma simplificado pois o assunto não é dos mais simples (dá um baita trabalho tentar explicar essas coisas também).

Sobre o nó que vai ser excluído, bem notado novamente. Mas não, não é obrigado ele apontar para null. Tanto que nem fizemos isso na implementação da lista.

Mas pode ser importante por motivos de segurança. Imagina que esse nó que excluímos sejam os dados de um cliente de um banco ou outra coisa interna de uma empresa. Alguém mal intencionado pode pegar as informações desse nó retornado e descobrir que ele tem um ponteiro apontando pros outros elementos da lista.
E esses elementos da lista podem ser dados privados, que o invasor vai passar a ter acesso.

Para um programa simples como o nosso, não vai importar muita coisa. Mas imagine fazendo isso em um sistema web, com PHP por exemplo, seria uma grande falha que facilmente seria explorada.

O ideal é, antes de retornar o nó, você fazer com que ninguém aponte para o nó e que o nó não aponte para ninguém da lista. Assim as coisas vão ficar mais seguras e privadas, pois ninguém fora da lista vai ter acesso a ela.

Grato pelos comentários, acabamos adicionando informações interessantes sobre o assunto.

18 de outubro de 2013 às 10:46

Blogger Unknown disse...

Obrigado pelo tempo dedicado em escrever este tutorial. Estou com dificuldades nesta matéria na faculdade, e como faço por EAD fica ainda mais difícil assimilar as "dicas" e "ajudas" dos tutores e colegas.

Seu texto foi muito bem construído e bem explicativo, me ajudou bastante! Vou continuar olhando outros tutoriais para captar bem a matéria.

Obrigado mais uma vez!

19 de março de 2015 às 05:05

Anônimo Anônimo disse...

Realmente é confuso essa lógica, mas não em nenhum lugar encontrei algo mais claro do que está escrito aqui, acho que agora finalmente vou aprender estrutura dinâmica em C.

17 de julho de 2015 às 11:57

Anônimo Anônimo disse...

As imagens estao offline

30 de agosto de 2015 às 13:16

Blogger Unknown disse...

Boa tarde!
Notei que algumas imagens estão faltando nesse e em alguns outros tópicos do "Tutorial de Estrutura de dados III: Estruturas Dinâmicas". Se puder, atualize as páginas!

Além disso, gostaria de agradecer por todo o conteúdo do C Progressivo, já aprendi muito com ele! Obrigada!

20 de janeiro de 2016 às 12:24

Blogger Unknown disse...

Uma ótima forma de explicar. Bem clara para quem está iniciando, não ter tanta dificuldade.

8 de abril de 2017 às 08:05

Blogger Unknown disse...

Me ajudem, tenho muita dificuldade em implementar listas e preciso de Código de uma lista de compra.

28 de outubro de 2019 às 08:30

Anônimo C Progressivo disse...

Qual sua dúvida? Onde está sentindo dificuldade? O que não entendeu?

Lembrando que podemos te ajudar e orientar, resolver tarefa de casa pra você, aí não.

29 de outubro de 2019 às 06:53

É quase impossível criar centenas de páginas voltadas para programação C e não cometer algum erro.

- Se notar algum conceito, letra ou trecho de código errado, deixe sua correção

- Se perceber uma maneira melhor ou mais eficiente de fazer algo, deixe sua ideia

- Se algo não ficar claro ou for confuso, nos avise

Aos poucos vamos aumentando e melhorando a qualidade de nosso material, e para isso contamos com sua ajuda.
Você pode usar algumas tags HTML, como <b>, <i>, <a>

A moderação de comentários foi ativada. Todos os comentários devem ser aprovados pelo autor do blog.

Depois de enviar seu comentário, será necessário fazer login.
Prove que você não é um robô