Aclaro que pNodo *p1 es un puntero que recibe una direccion de otro puntero.
Estoy usando estructuras.
Código C:
Ver original
void Anadir(pNodo *p1, pNodo *u1,pNodo *p2, pNodo *u2, int v) { pNodo nuevo; int dato1,dato2; /* Crear un nodo nuevo */ nuevo->valor = v; /* Este será el último nodo, no debe tener siguiente */ nuevo->siguiente = NULL; /* Si la cola no estaba vacía, añadimos el nuevo a continuación de ultimo */ if(*u1){ (*u1)->siguiente = nuevo;} if(*u2 && ((*u2)->valor != nuevo->valor)) {(*u2)->siguiente = nuevo; *u2 = nuevo; } /* Ahora, el último elemento de la cola es el nuevo nodo */ *u1 = nuevo; /* Si primero es NULL, la cola estaba vacía, ahora primero apuntará también al nuevo nodo */ if(!*p1) { *p1 = nuevo; *p2 = nuevo; } }