Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2013, 06:47
Javieer-G
 
Fecha de Ingreso: diciembre-2008
Mensajes: 50
Antigüedad: 15 años, 5 meses
Puntos: 0
Borrar un elemento en una lista enlazada

Buenas,

Estoy terminando el proyecto para fin de una asignatura de programación en C pero me he quedado atascado al programar la función "borrar". La historia es el algoritmo. La lista es enlazada simple, ya que si fuera doble sería más sencillo. Os dejo el código:

Código C:
Ver original
  1. void borrarReferencia(ref_info **lista, int ID){
  2.     ref_info *q =  nuevaRef(); //inicializa con malloc y demás
  3.     q =  *lista;
  4.    
  5.     while(q->ID != ID){ //El parámetro ID es un int de la struct ref_info
  6.         q = q->next;
  7.     }
  8.  
  9.     /*Aquí es donde entra el problema, ya que este algoritmo no me borra...*/
  10.    
  11.         ref_info *aux = nuevaRef();
  12.    
  13.     aux = q->next;
  14.     q = aux;
  15.    
  16.     free(aux);
  17.    
  18.  
  19. }

Gracias de antemano :)