CUCEI
listas dinamicas
Tendremos que ir agregando elementos que contengan un puntero al próximo elemento:
O sea que, cada elemento está formado por :
– Un elemento del tipo deseado (int)
– Un puntero al próximo, o null si es el último.
Cada elemento, que llamaremos «nodo» estará definido por un struct (o registro) así:
Hay dos elementos en el registro:
– Un elemento llamado info de tipo entero
– Un puntero al próximo nodo.
Queremos agregar un nodo a la lista vacía :
El operador -> reemplaza el uso del operador * junto con el operador.
lista no es una variable de tipo stuct, sino una variable de tipo puntero a struct.
Para acceder al campo info del struct nodo, debemos hacer:
– *(lista).info=8
O bien:
– lista->info=8
El operador ->se llama selector indirecto, mientras que
el operador . se llama selector directo
Necesitamos una variable auxiliar
aux=lista;
lista=malloc(sizeof(struct Nodo));
lista->info=3 Lista->sig=aux
Ahora queremos que el nuevo elemento (el 2)
se agregue al final de la lista
De forma más general, si la lista tiene muchos elementos, hay que:
1. buscar el último elemento, es decir, recorrer la lista
hasta encontrar el puntero cuyo siguiente es null. Guardar el puntero en la variable aux.
-
Reservar memoria para el nuevo elemento, guardar su puntero en nuevo.
-
Hacer que el campo siguiente del último elemento encontrado en ( 1) apunte el nuevo elemento: aux->sig=nuevo
-
Actualizar los campos de nuevo, con indicación de fin de lista.






