Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/05/2006, 04:20
Avatar de yournightmare86
yournightmare86
 
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 875
Antigüedad: 18 años, 8 meses
Puntos: 9
Listas enlazadas en C.

Hace un par de días vengo dando lista enlazadas en clase, justo después de haber acabado estructuras de datos. La verdad es que el concepto lo entiendo y he logrado hacer una lista enlazada bastante simple que funciona. A pesar de haberlo conseguido tengo una duda, para que sirve "->"? Por ejemplo p->clave = i; Creo saber que es una forma de asignar valores pero mi profesora ha empezado a utilizarlo sin explicarnos qué es y para qué se usa. Aquí les dejo el programilla simple.

#include<stdlib.h>
#include<stdio.h>


struct lista
{
int clave;
struct lista *sig;
};

void recorrer(struct lista *L, int *suma);

void main()
{
struct lista *L;
struct lista *p;
int i;
int suma;
L = NULL; /* Crea una lista vacia */

for (i=3;i>=1;i--)
{
/* Reserva memoria para un nodo */
p = (struct lista *) malloc(sizeof(struct lista));
p->clave = i;

p->sig = L;
L = p;
}
suma=0;
recorrer(L, &suma);
getchar();
}

void recorrer(struct lista *L, int *suma)
{
if (L != NULL)
{
printf("%d, ", L->clave);
*suma = *suma + L->clave;
recorrer(L->sig, suma);
}
}

Espero que alguien pueda aclararme mi duda de novato en esto de C. Un saludo.