Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ovvelha

Algoritmo alocação dinamica

Recommended Posts

Fala Galera, poxa, sempre tive dificuldade em alocação dinamica, não consigo entender

e to com dificuldade pra fazer este exercicio:

 

Dada uma lista ENCADEADA de registros, cada registro possui a seguinte estrutura: Código da Matrícula, Nome, CPF. Por um erro do programador no passado...o programa de inclusão permitiu incluir 2 ou mais vezes pessoas com o mesmo CPF. Considere que a lista é composta por N registros. Esta lista está ordenada por código de Matrícula. Faça o algoritmo para deletar APENAS OS REGISTROS REPETIDOS, DEIXANDO APENAS UM CPF válido na lista.

 

não faço a menor ideia de como começar isso ou por onde

queria uma ajuda nem precisa postar algoritmo, falando a lógica já me ajuda e bastante

 

realmente não sei nem por onde começar isso, não sei como fazer para comparar

se alguem poder me ajudar, pra mim serve qualquer coisa, a lógica, o algoritmo, implementado, tanto faz, pq realmente sempre tive dificuldades e não sei como fazer isso

 

valeu! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro precisa entender um pouco de lista encadeada para inserir os dados.

Feito isso, a lógica para excluir não é tão difícil.

 

Para facilitar voce pode criar uma função que exclua um elemento da lista pelo cpf.

Essa função receberá o cpf e na primeira ocorrencia na lista excluirá o elemento.

 

Para excluir, voce precisa liberar o espaço de memoria ocupado pelo dado. Além disso é necessário refazer as ligações. Vamos a um exemplo:

 

 

a - b - c - d - e

 

Para liberar c eu preciso fazer a ligação b com d, por isso se o elemento não for o primeiro e nem o último que são casos especiais, para refazer a ligação precisamos da referencia do elemento anterior.

Pense na lógica de como seria a exclusão do primeiro e do último.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para deletar o primeiro, cria um ponteiro "i" que aponta pro primeiro elemento da lista

caso quer deletar ele, o i apontara ai pro proximo

 

e o ultimo, cria um ponteiro "f" que aponta pro ultimo

quando deletar ele o f aponta pro anterior e o campo proximo do f fica nulo

seria isso?

 

i=inicio

f=final

 

campo proximo é as ligações

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.