Estructura datos
Razonando del mismo modo podemos insertar un nuevo nodo al final de una lista no vacía, sólo que en este caso necesitamosun puntero que nos señale al último elemento de la lista. La forma de conseguir este puntero es muy sencilla: basta con recorrer uno a uno todos los elementos de la lista hastallegar al último. Podemos reconocer el último porque es el único cuyo elemento siguiente valdrá NULL.
Cuando tengamos todos estos elementos, el proceso de inserción se resume en:1. Hacer que el último elemento deje de apuntar a NULL y pase a apuntar al nuevo nodo.
2. Hacer que el nuevo nodo apunte a NULL
Observe detenidamente la implementación enC, prestando atención a cómo se obtiene el puntero al último elemento de la lista. Recuerde que el último se identifica porque su puntero a su siguiente elemento vale NULL:t_nodo *ultimo, *nuevo;
// Primera parte: buscar el último nodo de la lista (para eso, la recorremos desde el principio)
ultimo = primero;
while (ultimo->siguiente != NULL)ultimo = ultimo->siguiente;
// Segunda parte: crear el nodo nuevo e insertarlo en la lista
nuevo = (t_nodo*) malloc(sizeof(t_nodo)); // Creamos nodo nuevo
nuevo->dato = 18;// Le asignamos un valor al dato
ultimo->siguiente = nuevo; // Lo enlazamos al (hasta ahora) último de la lista
nuevo->siguiente = NULL;// Hacemos que el siguiente del nodo nuevo sea NULL
Si aplicamos este código a la lista de ejemplo del apartado anterior obtendremos esta otra lista:
[pic]-----------------------
INSERTAR DATO _ FINAL DE UNA LISTA
F
V
R
T^LIGA Q
Q^LIGA NULO
Q^INFO DATO
CREA Q
T T^LIGA
T^LIGA != NULO
T P
Regístrate para leer el documento completo.