wallydosantos
29-05-2007, 23:37
boas...
estou a fazer um trabalho em c++, estou a fazer uma função de inserir / remover elementos de uma lista. ela insere/remove so que nao guarda..
gostava de saber como faço uma função pra guardar os elementos que insiro e removo..
insiro elementos deste tipo:1;Ricardo Gomes Silva;Avenida dos Combatentes,1200 Lisboa;140567000...
utilizo uma estrutura do tipo cliente:
typedef struct cliente{
long int num;
char nome[max];
char morada[max];
long int n_c;
}cliente;
e aqui estao as funções de remover e inserir :
void removenode(LIST * lista,void * ptr_data)
{
LIST_NODE * node, * ant;
BOOLEAN find=FALSE;
node=*lista;
while(node!=NULL && find==FALSE)
{
if(DATA(node)==ptr_data)
{
if(node==*lista)
{
*lista=NEXT(node);
free(node);
}
else
{
NEXT(ant)=NEXT(node);
free(node);
}
find=TRUE;
}
else
{
ant=node;
node=NEXT(node);
}
}
return;
}
estou a fazer um trabalho em c++, estou a fazer uma função de inserir / remover elementos de uma lista. ela insere/remove so que nao guarda..
gostava de saber como faço uma função pra guardar os elementos que insiro e removo..
insiro elementos deste tipo:1;Ricardo Gomes Silva;Avenida dos Combatentes,1200 Lisboa;140567000...
utilizo uma estrutura do tipo cliente:
typedef struct cliente{
long int num;
char nome[max];
char morada[max];
long int n_c;
}cliente;
e aqui estao as funções de remover e inserir :
void removenode(LIST * lista,void * ptr_data)
{
LIST_NODE * node, * ant;
BOOLEAN find=FALSE;
node=*lista;
while(node!=NULL && find==FALSE)
{
if(DATA(node)==ptr_data)
{
if(node==*lista)
{
*lista=NEXT(node);
free(node);
}
else
{
NEXT(ant)=NEXT(node);
free(node);
}
find=TRUE;
}
else
{
ant=node;
node=NEXT(node);
}
}
return;
}