Share Pastebin
Guest
Public paste!

Jesuino

By: a guest | Jun 22nd, 2009 | Syntax: C | Size: 1.08 KB | Hits: 42 | Expires: Never
This paste has a previous version, view the difference. Copy text to clipboard
  1. void remover(struct _lista **lista, int pos){
  2. //     struct _lista *lista = *pLista;
  3.      pos--;
  4.      int atualPos = 0;
  5.      
  6.      while((*lista)->prev != NULL){
  7.          (*lista) =  (*lista)->prev;
  8.      }
  9.      
  10.      while(atualPos++ != pos && lista != NULL ){
  11.          (*lista) =  (*lista)->prox;            
  12.      }
  13.      
  14.      if(lista == NULL){
  15.          printf("Naum ha elemento a remover\n");
  16.          return;
  17.      }
  18.      //Não é o último
  19.      if((*lista)->prox){
  20.         //Não é o primeiro elemento        
  21.         if((*lista)->prev){            
  22.            (*lista)->prev->prox = (*lista)->prox;
  23.            (*lista)->prox->prev = (*lista)->prev;              
  24.         }
  25.         //Primeiro elemento
  26.         else{
  27.           (*lista) = (*lista)->prox;        
  28.           (*lista)->prev = NULL;          
  29.         }
  30.                
  31.      }
  32.      //Último elemento
  33.      else if((*lista)->prev){
  34.            (*lista)  = (*lista)->prev;
  35.            (*lista)->prox = NULL;          
  36.      }    
  37.      else{
  38.           printf("este eh o elemento unico da lista...");    
  39.      }
  40. }