top of page

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.

 

  1. Reservar memoria para el nuevo elemento, guardar su puntero en nuevo.

 

  1. Hacer que el campo siguiente del último elemento encontrado en ( 1) apunte el nuevo elemento: aux->sig=nuevo

 

  1. Actualizar los campos de nuevo, con indicación de fin de lista.

 

 

 

 

 

 

 

 

 

bottom of page