ensayo
Lista densa: la propia estructura determina cuál es el siguiente elemento de la lista. Ejemplo: un array.
Lista enlazada: la posición delsiguiente elemento de la estructura la determina el elemento actual.
Es necesario almacenar al menos la posición de memoria del primer elemento.
Además es dinámica, es decir, su tamaño cambiadurante la ejecución del programa.
Una lista enlazada se puede definir recursivamente de la siguiente manera:
a) una lista enlazada es una estructura vacía o
b)un elemento de información y un enlacehacia una lista (un nodo).
Gráficamente se suele representar así:
Una lista puede cambiar de tamaño, pero su ventaja fundamental es que son flexibles a la hora de reorganizar sus elementos;a cambio se ha de pagar una mayor lentitud a la hora de acceder a cualquier elemento.
Implementación con punteros
Se representará una lista vacía con la constante NULL.
struct lista
{
intclave;
struct lista *sig;
};
Cuando se crea una lista debe estar vacía. Por tanto para crearla se hace lo siguiente:
struct lista *L;
L = NULL;
Asignación dinámica de memoria y Estructurasdinámicas
La asignación dinámica de memoria es una característica de C. Le permite al usuario crear tipos de datos y estructuras de cualquier tamaño de acuerdo a las necesidades que se tengan en elprograma.
La función malloc sirve para solicitar un bloque de memoria del tamaño suministrado como parámetro. Devuelve un puntero a la zona de memoria concedida:
void* malloc (unsignednumero_de_bytes );
Operador sizeof
El problema de malloc es conocer cuántos bytes se quieren reservar. Si se quiere reservar una zona para diez enteros, habrá que multiplicar diez por el tamaño deun entero.
sizeof (T)
Función free
Cuando una zona de memoria reservada con malloc ya no se necesita, puede ser liberada mediante la función free.
void free (void* ptr);
ptr es un...
Regístrate para leer el documento completo.