Estructuras de Datos Dinmicas Lic Gladys Chuquimia Para

  • Slides: 23
Download presentation
Estructuras de Datos Dinámicas Lic. Gladys Chuquimia

Estructuras de Datos Dinámicas Lic. Gladys Chuquimia

¿Para qué nos sirven? • Utilizan óptimamente la memoria, y solo trabaja con la

¿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

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

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

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

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

Definición de la estructura de una lista

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

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

Adición de elementos por Adelante • Paso 1 : Pido un nodo Q 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

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:

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

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

Algoritmo

Listado de elementos de una lista P 12 5 43 43 7 5 5

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

Algoritmo

Estructuración Final del programa

Estructuración Final del programa

Efectúa un módulo para contar los elementos de una lista P 12 5 43

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

¿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++

En lenguaje C++

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

¿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

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.