Ver Mensaje Individual
  #13 (permalink)  
Antiguo 22/05/2010, 09:49
minette1988
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: crear una lista enlazada

¿Así está bien?. Cuando lo compilo me da el siguiente error: En la función ‘borrar_nodo’:
272: error: expected identifier before ‘(’ token


Código C:
Ver original
  1. void borrar_nodo(struct nodo_lista **lista){
  2.     /* Para borrar un nodo, tendremos que guardar un puntero al nodo anterior
  3.        del que nos encontramos, ya que este puntero pasará a apuntar al nodo
  4.        apuntado por el que vamos a borrar */
  5.     struct nodo_lista *nodo_aux, *nodo_anterior;
  6.     char nombre[T_NOM];
  7.     char telefono[T_TEL];
  8.     int encontrado = 0;
  9.  
  10.     printf("Nombre a borrar: ");
  11.     LEE_CAD(nombre,T_NOM);
  12.     printf("Telefono a borrar: ");
  13.     LEE_CAD(telefono,T_TEL);
  14.     nodo_aux = *lista;
  15.     /* Comprueba si el elemento a borrar es el primero de la lista */
  16.     if(strcmp(nombre,nodo_aux->nombre)==0) && (strcmp(telefono,nodo_aux->telefono) == 0){
  17.        *lista=nodo_aux->siguiente; /* Ahora apunta al segundo de la lista */
  18.        free(nodo_aux);} /* Libera la memoria ocupada por el nodo borrado */
  19.     else{
  20.       nodo_anterior = nodo_aux;
  21.       nodo_aux = nodo_aux->siguiente;
  22.       while ((nodo_aux->siguiente != NULL) && (!encontrado)){
  23.         if(strcmp(nombre,nodo_aux->nombre) == 0) && (strcmp(telefono,nodo_aux->telefono) == 0) /* Iguales */
  24.            encontrado = 1;
  25.         else{
  26.            nodo_anterior = nodo_aux;
  27.            nodo_aux = nodo_aux->siguiente;
  28.         }
  29.       }
  30.       if((nodo_aux->siguiente == NULL) && (!encontrado))
  31.        if(strcmp(nombre,nodo_aux->nombre) == 0) && (strcmp(telefono,nodo_aux->telefono) == 0) /* Iguales */
  32.          encontrado = 1;
  33.  
  34.       if(encontrado){
  35.         nodo_anterior->siguiente = nodo_aux->siguiente;
  36.         free(nodo_aux); /* Libera la memoria ocupada por el nodo borrado */
  37.       }
  38.     }
  39. }