Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/03/2005, 06:25
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
No se de donde habrás sacado ese código pero la sintaxis no es muy clara que digamos así que lo voy a cambiar para aumentar su legibilidad:

Código:
if(pi == 0)
{
  pi = p; 
}
else 
{
  pa->sig = p; 
}
pa = p;
Ahora voy a tratar de explicarlo:

Si pi todavía no tiene valor es porque estamos agregando el primer nodo a la lista, entonces pi = p (el nodo que se está agregando). De lo contrario pa->sig es igual a p, con lo cual el nodo anterior apuntá al siguiente (p). Finalmente todas las veces se le asigna a pa p, con lo cual pa apunta al último nodo que se agregó.

El chiste de esto es que, a partir de pi->seg podemos rastrear todos los nodos:

Código:
nodo *next = next = pi->sig;
for (;;)
{
  printf("%d\r\n", next->n);    
  if (!next->sig) { break; }
  next = next->sig;     
 }
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 21/03/2005 a las 06:27