Universidad de Los Andes Facultad de Ingeniería Escuela de Sistemas Listas Enlazadas Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería Universidad de Los Andes, Mérida 5101 Venezuela Programación Digital 3 Definición Una lista enlazada es una colección de elementos, denominados nodos. Cadan nodo contiene dos componentes: Enlace: contiene la dirección de memoria que apunta al próximo elemento Datos: es la información que se necesita almacenar. El orden de los nodos es determinado por la dirección de memoria donde se almacenan Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Listas Enlazadas Cabecera Enlace al primero Dato Enlace al próximo 10 10 33 12 12 88 Nodos Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Operaciones Las operaciones que se pueden realizar en una lista enlazada son: Agregar al final un dato Agregar al principio un dato Modificar un dato Eliminar un dato Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Agregar Elemento al Final 1)Si la lista está vacia Apartar memoria para un nuevo nodo Asignar valor al nodo Apuntar la cabecera al nuevo nodo 2)Si no Recorrer la lista hasta el final Pedir memoria para un nuevo nodo Asignar el valor al nodo Apuntar el enlace del último nodo al nuevo nodo Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Agragar al final Si la lista está vacia 10 10 Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Listas Enlazadas Si la lista NO está vacia 88 10 10 12 12 33 Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Agregar Elemento al Principio 1)Solicitar memoria para un nuevo nodo 2)Asignar el valor al nuevo nodo 3)Asignar el enlace del nuevo nodo al primer nodo 4)Apuntar la cabecera al nuevo nodo Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Agregar Elemento al Principio 88 10 10 12 12 33 Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Eliminar Elemento 1)Si el elemento es el primero de la lista Apuntar la cabecera al siguiente Liberar el nodo 10 10 12 12 33 Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Eliminar Elemento 1)Si el elemento es el primero de la lista Apuntar la cabecera al siguiente Liberar el nodo 10 10 12 12 33 Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz Eliminar Elemento Si no Buscar el elemento Apuntar el anterior al siguiente y liberar el nodo 10 10 12 12 33 55 Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz