Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void RemoverElemento(Lista *L, NoLista *N)
- {
- if(!L || !L->Inicio) //Se a lista existe e tem inicio
- return;
- NoLista *Aux = L->Inicio, *Aux2 = NULL; // Auxiliares
- while(Aux) //enquanto exitir Aux
- {
- if(Aux == N) //Se o Aux for igual ao no a remover
- break; //Para o ciclo
- Aux2 = Aux; //Aux2 fica com o valor do no anterior
- Aux = Aux->Prox;
- }
- if(Aux) //Se o N realmente pertencia a L
- {
- if(!Aux2) //Se o Aux2 não existir quer dizer que o N é o primeiro elemento da lista
- L->Inicio = Aux->prox;
- else
- Aux2->prox = Aux->prox; //O proximo do anterior(de Aux) passa para o proximo do no a remover(Aux)
- free(Aux->Info->N);// se alocaste memória dentro da informação do nó precisas disto
- free(Aux->Info); //liberta a parte "Info" da estrutura
- free(Aux); // liberta o nó
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment