Estructuras de Datos Dinmicas Lic Gladys Chuquimia Para























- Slides: 23

Estructuras de Datos Dinámicas Lic. Gladys Chuquimia

¿Para qué nos sirven? • Utilizan óptimamente la memoria, y solo trabaja con la memoria que realmente necesita, según el programa que se implementa. • Por lo cual manejan direcciones de memoria directa. • Estas pueden ser: Listas enlazadas: Simples y dobles

Listas Enlazadas • Las listas enlazadas son estructura de datos naturales donde el número de elementos que la integran no es conocido, o en su mejor caso, la cantidad de los mismos puede variar.

Características • En lugar de índices de arreglo aquí se emplean punteros para agrupar linealmente los elementos. • La lista enlazada permite implementar todas las operaciones de un conjunto dinámico. Toda lista cuenta con un encabezado y nodos.

Representación de una lista simplemente enlazada P Direcciones de memoria 12 Info sig NODO 43 5

Tipo De Dato Abstracto Nodo • Un NODO es una estructura compuesta básicamente de dos partes: – Un campo de información, en cual se almacenan datos o estructuras – Un campo de dirección, en el cual se almacena la dirección del nodo siguiente.

Definición de la estructura de una lista

Operaciones con Listas Enlazadas Simples • Creación de una lista P

Adición de elementos por Adelante • Paso 1 : Pido un nodo Q P • Paso 2: Adiciono el elemento y luego, hago que este apunte a tierra, y por ser el primer nodo que P apunte a Q. P Q 5 0

Si quiero seguir adicionando • Paso 3: Pido un nodo P Q 5 0 • Paso 4: Adiciono información al nodo y hago que el nodo nuevo apunte al nodo que esta al principio P, y actualizo P P Q 7 5 0

Luego el módulo adición de elemento a una lista por adelante es:

Eliminación por adelante en una lista enlazada simple P 7 Q 5 0 P • Si hay elementos – Se extrae el elemento. – Se actualiza el principio de la lista, moviendo P. – Se elimina el elemento del principio (Q)

Algoritmo

Listado de elementos de una lista P 12 5 43 43 7 5 5 33 0 Q • Habilito un apuntador auxiliar Q a P • Mientras existan nodos – Con este Q voy mostrando la información contenido en los nodos.

Algoritmo

Estructuración Final del programa


Efectúa un módulo para contar los elementos de una lista P 12 5 43 43 7 5 5 33 0 Q • C=0 • Hacer que el apuntador auxiliar Q apunte a P. • Mientras exista nodos (Q < > 0) – C=C+1 – Hacer que Q apunte al siguiente elemento • Devolver C


¿Cómo adiciono por atrás? P • • 12 15 5 5 33 34 0 71 0 T Q Pido un nodo (Q) Q->info = elemento Q-> sig = 0 Hacer que T apunte a P Mientras T->sig < > 0 – T = T->sig • T->sig = Q 34

En lenguaje C++

¿Cómo elimino por el final? P 12 5 43 43 7 5 5 ant P 12 5 43 t 43 7 33 0 0

Ejercicios • Diseñar un módulo para concatenar dos listas A y B. • Eliminar un elemento X en una lista P. • Insertar el elemento 1 después de cada elemento par en una lista P.