Excluir

1. Excluir

Carlos Bruno
cbcarlos7

(usa Linux Mint)

Enviado em 14/12/2010 - 17:58h

Tendo 6 nomes cadastrados
1 - a
2 - b
3 - c
4 - d
5 - e
6 - f

Eu gostaria de excluir a posicao 3.
Entao ficaria a seguinte exibiçao.
1 - a
2 - b
3 - d
4 - e
5 - f

Alguem sabe?


  


2. Simples!

Ezequias Rocha
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!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts