Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2010, 05:52
abuitrago81
 
Fecha de Ingreso: mayo-2010
Mensajes: 41
Antigüedad: 14 años
Puntos: 0
Eliminar un elemento de una lista en C

Pues esa es mi duda, necesitaría el código en C ( uso borland ) para eliminar un elemento concreto de una lista en C ( lista simple ), porque mi codigo me falla...

Código C:
Ver original
  1. void BorrarUnElemento(struct Nodo **cab){
  2.     int sw=0, cont=1, pos=1;
  3.     char nombre[20];
  4.    struct Nodo *q, *r;
  5.    q = *cab;
  6.    r = q;
  7.    printf("\n\tNombre de la persona a borrar: ");
  8.    scanf("%s", &nombre);
  9.    fflush(stdin);
  10.    // Encontrar la posición.
  11.    while(q != NULL && sw==0) {
  12.     if(strcmp(nombre,q->nom)==0){
  13.         sw=1;
  14.       } else {
  15.         q = q->sig;
  16.             cont++;
  17.       }
  18.    }
  19.    // Eliminación...
  20.    sw=0;
  21.    while(r != NULL && sw==0) {
  22.     if(pos = cont - 1){
  23.         q = r->sig;
  24.          r->sig = q->sig;
  25.          free(q);
  26.          sw=1;
  27.       }
  28.       q = q->sig;
  29.       r = r->sig;
  30.       pos++;
  31.    }
  32. }