Keith
23-12-2007, 00:02
Boas.
Gostaria de vos pedir ajuda com um bocado de código que escrevi:
void Eliminacao(string str)
{
int i, F = 0;
Node * Serie, * S1, * S2;
for (i=0;i<NJ;i++)
{
S1 = S2 = Serie = &Series[i];
while ((S2) && (S2->ID != str)) { S1 = S2;
S2 = S2->next; }
if (S2->ID == str) { if (S2 == Serie) { Serie = Serie->next; }
else { S1->next = S2->next; } }
Series[i] = *Serie;
}
}Series é um array com uma lista ligada pendurada em cada uma das posições.
O problema é que, se houver elementos repetidos na mesma lista, este código apenas remove apenas o primeiro que aparecer.
Já dei voltas ao código e não consigo colocar isto dessa forma.
Alguém me pode ajudar?
Muito obrigado e Feliz Natal a todos.
Keith
Gostaria de vos pedir ajuda com um bocado de código que escrevi:
void Eliminacao(string str)
{
int i, F = 0;
Node * Serie, * S1, * S2;
for (i=0;i<NJ;i++)
{
S1 = S2 = Serie = &Series[i];
while ((S2) && (S2->ID != str)) { S1 = S2;
S2 = S2->next; }
if (S2->ID == str) { if (S2 == Serie) { Serie = Serie->next; }
else { S1->next = S2->next; } }
Series[i] = *Serie;
}
}Series é um array com uma lista ligada pendurada em cada uma das posições.
O problema é que, se houver elementos repetidos na mesma lista, este código apenas remove apenas o primeiro que aparecer.
Já dei voltas ao código e não consigo colocar isto dessa forma.
Alguém me pode ajudar?
Muito obrigado e Feliz Natal a todos.
Keith