Implementación de listas
Implementación de Listas Una lista es independiente de una forma específica de codificación Pueden usarse: Estructuras Estáticas (matrices) Estructura Dinámica (tecnología de punteros / referencias)
Lista densa con estructura estática Debe conocerse de antemano el número de elementos previsto en la lista Problemas de mantenimiento: inserción y eliminación poco eficientes Lista densa: permite un acceso directo a cualquier componente (no hay que consultar elementos anteriores o posteriores) Acceso aleatorio : no permite una codificación natural de una lista enlazada!! Estructura estática: su tamaño no puede variar, luego para problemas con un número acotado un array puede ser una buena solución.
Lista enlazada con estructura estática Matriz con referencias a nodos ocupados y huecos (limitado a 8 elementos): Lista 10 12 13 21 1 2 3 4 5 6 7 8 10 77 12 26 21 11 13 18
Estructura dinámica: Punteros Tecnología de punteros Lista: Variable estática que apunta al primer elemento de una lista. Nodo de una lista: Información de tipo T Enlace al nodo siguiente Valores especiales: Primer elemento de la lista Último elemento de la lista
Representación de una lista enlazada * 10 12 13 21 Memoria estática Memoria dinámica
Otras posibilidades Con cabecera y/o centinela. Bidireccionales (doblemente enlazadas). Circulares. Combinación de las anteriores.