Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void elimLista(Lista lst)
- {
- if (lst->iterador != NULL)
- {
- pListaNo noAserDesalocado;
- if (lst->iterador == lst->primeiro) // se o iterador estiver sobre o primeiro elemento
- {
- if (lst->longitude == 1)
- {
- noAserDesalocado = lst->iterador;
- lst->iterador = NULL;
- lst->primeiro = NULL;
- lst->ultimo = NULL;
- lst->longitude--;
- free(noAserDesalocado);
- }
- else
- {
- noAserDesalocado = lst->iterador;
- lst->iterador = lst->iterador->prox;
- //lst->primeiro = lst->primeiro->prox;
- lst->primeiro = lst->iterador;
- lst->longitude--;
- free(noAserDesalocado);
- }
- }
- else // iterador esta sobre qualquer outro no que nao o primeiro no
- {
- //iterador sobre no intermediario ou o ultimo no
- pListaNo p;
- for (p = lst->primeiro; p->prox != lst->iterador; p = p->prox)
- {
- }
- noAserDesalocado = lst->iterador;
- p->prox = lst->iterador->prox;
- if (lst->iterador == lst->ultimo) // se o iterador estiver sobre o utlimo no
- lst->ultimo = p;
- lst->iterador = lst->iterador->prox;
- free(noAserDesalocado);
- lst->longitude--;
- }
- }
- else
- {
- printf("\n erro: iterador indefinido \n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement