Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/10/2013, 22:57
FjZOOM
 
Fecha de Ingreso: septiembre-2013
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 0
estructuras de datos

Hay una parte en ese troso de codigo que cuando lo depuro me lo salta y por ningun motivo entra cuando deberia ser asi segun yo es en la parte del segundo ifif(*u2 && ((*u2)->valor != nuevo->valor)) alguien tiene una idea del por que.

Aclaro que pNodo *p1 es un puntero que recibe una direccion de otro puntero.

Estoy usando estructuras.

Código C:
Ver original
  1. void Anadir(pNodo *p1, pNodo *u1,pNodo *p2, pNodo *u2, int v) {
  2.    pNodo nuevo;
  3.    int dato1,dato2;
  4.  
  5.    /* Crear un nodo nuevo */
  6.    nuevo = (pNodo)malloc(sizeof(tipoNodo));
  7.    nuevo->valor = v;
  8.    /* Este será el último nodo, no debe tener siguiente */
  9.    nuevo->siguiente = NULL;
  10.    
  11.    /* Si la cola no estaba vacía, añadimos el nuevo a continuación de ultimo */
  12.      if(*u1){
  13.          (*u1)->siguiente = nuevo;}
  14.     if(*u2 && ((*u2)->valor != nuevo->valor))  
  15.     {(*u2)->siguiente = nuevo;
  16.    *u2 = nuevo; }
  17.        
  18.    /* Ahora, el último elemento de la cola es el nuevo nodo */
  19.    *u1 = nuevo;
  20.    
  21.      
  22.    /* Si primero es NULL, la cola estaba vacía, ahora primero apuntará también al nuevo nodo */
  23.    if(!*p1)
  24.    {
  25.    *p1 = nuevo;
  26.    *p2 = nuevo;
  27.    }        
  28. }