Guest
Public paste!

Jesuino

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