Autor Tema: No entiendo las listas  (Leído 2747 veces)

Desconectado beginner

  • Newbie
  • *
  • Mensajes: 3
No entiendo las listas
« en: 21 de Marzo de 2005, 03:26:44 pm »
Nos han puesto este ejemplo de LISTA en clase, pero no lo entiendo. :(  ¿Algún voluntario para explicarmelo? Thankx!

struct nodo
{
short n;
struct nodo * sig;
}
struct nodo *p, *pa, *pi;   //QUÉ SIGNIFICAN TODOS ESTOS PUNTEROS??? S.O.S.!!!
short aux;

void main (void)
{
printf("introduce numero o 0 para terminar:");
scanf("%d", &aux);
while(aux!=0)
{
p=(struct nodo *) malloc(sizeof(struct nodo));    //esto lo puedo entender, es la reserva de memoria

p->n=aux;
p->sig=0;  

if(pi==0)      //¿y este baile de punteros? S-(
 pi=p;
else
 pa->sig=p;

 pa=p;

printf("introduce numero o 0 para terminar:");
scanf("%d", &aux);
func_clasificacion();      //No es más que una función para ordenar
}

Desconectado capsx

  • Newbie
  • *
  • Mensajes: 4
No entiendo las listas
« Respuesta #1 en: 22 de Marzo de 2005, 11:01:06 pm »
struct nodo
{
short n;
struct nodo * sig;
}
Esto primero es la declaracion de la estructura que tendra cada nodo de la lista, n sera un dato de tipo short y sig un puntero al siguiente nodo de la lista.


struct nodo *p, *pa, *pi;

Yesto es la declaracion de tres puntero p, pa y pi del tipo anterior a traves de los cuales se pueden crear tres listas.

p=(struct nodo *) malloc(sizeof(struct nodo));
como biendices esto crea memoria para el puntero p

p->n=aux; esto asigna al campo n del puntero p el valor de aux
p->sig=0;  esto hace que la lista acabe aqui porque el siguiente elemento es 0 o NULL

if(pi==0)
pi=p;
esto lo que hace es hacer que el puntero pi apunte al mismo sitio q p es como si tuvieras lo mismo con dos nombres diferentes pi y p.

else
pa->sig=p;
con esto lo q haces es enlazar el nodo pa por delante del p haciendo q el campo siguiente de pa apunte a p, para esto previamente habra q haber reservado memoria para pa como lo hicimos para p.

Espero haberte sido de alluda

Desconectado beginner

  • Newbie
  • *
  • Mensajes: 3
OK, creo que sí me sirve
« Respuesta #2 en: 23 de Marzo de 2005, 08:54:51 am »
muchísimas gracias por las explicaciones. Un saludo  :D

Desconectado jirho

  • Member
  • ***
  • Mensajes: 303
Re: OK, creo que sí me sirve
« Respuesta #3 en: 05 de Abril de 2005, 06:31:52 pm »
...gracias capsx... :wink: ...
[root@local_host jirho]#Conecting to underground zone...:superman:

http://www.hackeando.com/gifs/logomini.gif

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License