Como criar uma lista dinamica ?!
é qeu gostaria de fazer uma lista dinamica com inicio final, prox a nterior mas já aprendi q o c tem um componente tlist q faz tudo isso, valeu pela atenção!!!!
:arrow: [color=red:a60fd0de61]Título alterado pelo Moderador oTTo. Removido: ´Lista´.[/color:a60fd0de61]
:idea: [color=blue:a60fd0de61]Seja mais claro no título.[/color:a60fd0de61]
:idea: [color=blue:a60fd0de61][url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=16976]Saiba como obter resposta rápida..[/url][/color:a60fd0de61]
:idea: [color=blue:a60fd0de61]Leia sempre [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta.[/url][/color:a60fd0de61]
:idea: [color=blue:a60fd0de61]Use sempre o Link [url=http://delphiforum.icft.com.br/forum/search.php][img:a60fd0de61]http://delphiforum.icft.com.br/forum/templates/subSilver/images/icon_mini_search.gif[/img:a60fd0de61] Pesquisar[/url] no topo da Página.[/color:a60fd0de61]
:arrow: [color=red:a60fd0de61]Título alterado pelo Moderador oTTo. Removido: ´Lista´.[/color:a60fd0de61]
:idea: [color=blue:a60fd0de61]Seja mais claro no título.[/color:a60fd0de61]
:idea: [color=blue:a60fd0de61][url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=16976]Saiba como obter resposta rápida..[/url][/color:a60fd0de61]
:idea: [color=blue:a60fd0de61]Leia sempre [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta.[/url][/color:a60fd0de61]
:idea: [color=blue:a60fd0de61]Use sempre o Link [url=http://delphiforum.icft.com.br/forum/search.php][img:a60fd0de61]http://delphiforum.icft.com.br/forum/templates/subSilver/images/icon_mini_search.gif[/img:a60fd0de61] Pesquisar[/url] no topo da Página.[/color:a60fd0de61]
Luiz_aquino
Curtidas 0
Respostas
Raimundo_farias
13/11/2004
Blz.... Mais depois tenta ai....
não sei se tem algum erro, escrevi agora.
Depois testa ai... é sempre bom a a gente saber como isso funciona... vai que vc ñ pode usar o BCB.... eu sempre faço assim
Qualquer coisa é só postar!
typedef struct no {
int info;
struct no *prox;
struct no *ant;
}noLista;
typedef struct cabeca {
noLista inicio;
noLista fim;
}descritor;
//aloca o inicio da lista.
descritor *iniLista = (descritor *) malloc(sizeof(descritor));
void isereLista(int elem, descritor *minhaLista)
{
noLista *ant = NULL, *suc;
//aloca um novo endereço para a informação
noLista *novo = (noLista *) malloc(sizeof(noLista));
if(novo != NULL) {
novo->prox = NULL;
novo->ant = NULL;
novo->info = elem;
if(minhaLista->inicio == NULL){// testa se a lista está vazia
minhaLista->inicio = novo;
minhaLista->fim = novo;
}else {
suc = minhaLista->inicio;
//procura o local de inserção
while((suc != NULL) && (suc->info < elem)) {
ant = suc;
suc -> suc->prox;
}
if(ant == NULL){ //insere no inicio da lista
novo->prox = minhaLista->inicio;
minhaLista->inicio->ant = novo;
minhaLista->inicio = novo; // atualiza o inicio da lista
}
else
if((suc != NULL) && (suc->info > elem)){ //insere no meio
novo->prox = ant->prox;
novo->ant = ant;
suc->ant = novo;
ant->prox = novo;
}
else
if(suc == NULL){ //insere no final
novo->ant = minhaLista->fim;
minhaLista->fim->prox = novo;
minhaLista->fim = novo; //atualiza o final da lista.
}
}
}
}
//(...)
insereLista(36, iniLista); //depois é só chamar.
não sei se tem algum erro, escrevi agora.
Depois testa ai... é sempre bom a a gente saber como isso funciona... vai que vc ñ pode usar o BCB.... eu sempre faço assim
Qualquer coisa é só postar!
GOSTEI 0