
Ezequias Rocha
(usa Ubuntu)
Enviado em 15/12/2010 - 08:16h
Você provavelmente terá uma estrutura de dados para o cadastro. Logo, terá um vetor de cadastro. e.g.:
typedef struct{
...
...
...
}Cadastro;
Então, terá por exemplo, um máximo possível de 100 cadastros:
Cadastro Pessoas[100];
Portanto, ao excluir o cadastro da posição n, deverá fazer um shift de uma posição para menos para todos os cadastros de ordem igual ou superior a n-1 até o limite de 100:
ExcluirCadastro(n);//Função qualquer que exclui um cadastro de posição n
for(int i=n; i<100; i++)//shift de uma poisição em todo o banco de cadastro
Pessoas[i]= Pessoas[i+1];
É claro que esta é um implementação "quite naive", no entanto, é um bom ponto de partida. Alternativamente, poderá apenas zerar a estrutura que se deseja excluir e , em seguida, pesquisa o banco em busca de estruturas não nulas e mostrá-las como cadastros válidos na ordem em que forem achados; novos cadastro podem ser inclusos em qualquer posição nula, no entanto, este tipo de abordagem só é válido em situações em que a ordem dos cadastros não é importante (se a ordem for um referência cronológica importante, pode-se cria um campo com data, o que substitui bem a necessidade da ordem), todavia é uma opção viável para grandes bancos de estruturas de dados e, por exemplo, para pesquisa de cadastro, existem vários algorítimos eficientes disponível que pesquisam os cadastros fora de sequência e são bastante eficientes para grandes bancos.
Embraces!