SlideShare una empresa de Scribd logo
Estructuras Dinámicas Una primera aproximación
Estática vs Dinámica En un sentido general, un componente es estático cuando no se transforma a lo largo del tiempo, y por el contrario, es dinámico cuando evoluciona en el tiempo. Desde el punto de vista abstracto (lógico), las estructuras de datos también poseen ese atributo. De allí que una estructura es estática cuando su configuración no se modifica a lo largo de su uso. Y aquellas estructuras que sufren cambios en su composición, a lo largo del tiempo, son dinámicas.  Es así que podemos agrupar las estructuras de datos en: Estáticas : vector, matriz, registro, cadena. Dinámicas : pila, cola, lista, árbol, grafo. Hasta el momento hemos estudiado las estructuras de datos estáticas, sus operaciones y aplicación. Veremos a continuación algunas de las estructuras dinámicas cuya “anatomía” se corresponde con el alcance de este curso, y en Algorítmica y Programación II profundizaremos su estudio e incorporaremos otras.
La pila: nivel lógico ¿Qué es una pila? Aunque los objetos de cada imagen son todos diferentes, cada uno ilustra un concepto común: la  pila . Así, definiremos una pila como: Conjunto ordenado de elementos homogéneos, de los que se puede añadir nuevos elementos o quitar elementos existentes por la  cabeza  de la pila.
Se considera a la pila un grupo ordenado porque los elementos están dispuestos de acuerdo a cuánto tiempo llevan en la pila. Dado que los elementos se añaden y quitan sólo por la cabeza de la pila, el último elemento añadido es el primero en ser quitado. De esto se sintetiza el concepto de pila como “el Último en entrar es el Primero en salir” : LIFO  (acrónimo en inglés de Last In First Out) Pila: estructura de datos en la que los elementos se añaden y quitan sólo por un extremo. Pero para definir el tipo de datos abstracto (TAD)  Pila , no es suficiente la estructura lógica. Debemos definir también el conjunto de operaciones que permita al usuario acceder y manipular los elementos almacenados en una pila. Como la pila es una estructura dinámica, cambia conforme se añaden y quitan elementos en ésta.
Llamaremos  Meter  a la operación de añadir un elemento por la cabeza de la pila (Push) y  Sacar  a la operación que toma el elemento que está en la cabeza de la pila   y lo quita (Pop). La pila debe ser creada para poder empezar a utilizarla, por lo que se crea una pila vacía. A esa operación la llamaremos  CrearPila . Y para poder sacar elementos de una pila, debemos poder chequear si la pila contiene algún elemento, por lo que necesitamos una operación booleana que denominaremos  PilaVacía . Puede ocurrir en alguna implementación que deba testearse si una pila está llena. En ese caso, la operación booleana se llamará  PilaLlena.  Pero esto es válido  sólo  en caso de que la implementación lo requiera. No desde el Tipo abstracto de datos (TAD). Las operaciones Meter y Sacar son las ventanas en el encapsulamiento de la pila, a través de las cuales pasan los datos de la pila. Estas operaciones son un  paquete  a través del cual se manejan todas las acciones sobre una pila, independientemente de la forma en que estén implementadas.
Uso de una pila en una aplicación Consideremos un procedimiento que lee una cadena e imprime sus caracteres en orden inverso. La cadena de entrada termina con un blanco, el que no debe imprimirse como parte de la cadena inversa: ImpInversa Repetir Leer  carácter Si  carácter <> blanco entonces  Meter (Pila, carácter) Hasta  carácter = blanco Mientras   no  PilaVacía(Pila)  hacer comienza Sacar (Pila, carácter) Imprimir  carácter termina
Pendientes Plazo fijo Service PC Arreglar Bomba agua ¿Qué es lo primero que se va a realizar? ¿luego? ¿finalmente? Pendientes  está vacío, por lo que las tareas han sido satisfechas
La cola: nivel lógico ¿Qué es una cola? En cada imagen vemos objetos diferentes, pero cada uno ilustra un concepto común: la  cola . Así, definiremos una cola como: Conjunto ordenado de elementos homogéneos, de los que se puede añadir nuevos elementos por un extremo y  eliminar  elementos existentes por el otro.
Se considera a la cola un grupo ordenado porque los elementos están dispuestos de acuerdo a cuánto tiempo llevan en la misma. Dado que los elementos se añaden por el final de la cola, el primer elemento añadido es el primero en ser quitado. De esto se sintetiza el concepto de cola como “el Primero en entrar es el Primero en salir”:  FIFO  (acrónimo en inglés de First In First Out) Cola: estructura de datos en la que los elementos se añaden por un extremo( el final)  y quitan por el otro (el frente). Pero para definir el tipo de datos abstracto (TAD)  Cola , no es suficiente la estructura lógica. Debemos definir también el conjunto de operaciones que permita al usuario acceder y manipular los elementos almacenados en una cola. Como ésta es una estructura dinámica, cambia conforme se eliminan y suprimen elementos.
Llamaremos  InsCola  a la operación de añadir un elemento por el final de la cola y  SupCola  a la operación que toma el elemento que está en en frente de la cola y lo quita. La cola debe ser creada para poder empezar a utilizarla, por lo que se crea una cola vacía. A esa operación la llamaremos  CrearCola . Y para poder sacar elementos de una cola, debemos poder chequear si la cola contiene algún elemento, por lo que necesitamos una operación booleana que denominaremos  ColaVacía . Puede ocurrir en alguna implementación que deba testearse si una cola está llena. En ese caso, la operación booleana se llamará  ColaLlena.  Pero esto es válido  sólo  en caso de que la implementación lo requiera. No desde el TAD. Las operaciones InsCola y SupCola son las ventanas en el encapsulamiento de la cola, a través de las cuales pasan los datos de la cola. Estas operaciones son un  paquete  a través del cual se manejan todas las acciones sobre una cola, independientemente de la forma en que estén implementadas.
Uso de una cola en una aplicación Consideremos un procedimiento que lee dos subcadenas de caracteres, separadas por un punto. Y determina si ambas subcadenas son iguales o no. Iguales  verdadero Repetir Leer  carácter Si  carácter <> punto  entonces  Ins_Cola (frase, carácter) Hasta  carácter =punto Mientras  iguales ^  no  ColaVacía(frase)  hacer comienza Leer  carácter Sup_Cola (frase, letra) si carácter/=letra entonces iguales   falso fin si termina mientras Si  iguales  entonces   escribir  “ambas subcadenas son iguales” fin si
Fotocopiadora Güemes Rosas Quiroga ¿A quién atienden primero? ¿luego? ¿quién sigue en la cola? Fotocopiadora  está vacía. Pueden ir a tomar mate al fondo!!!!! Urquiza ¿y ahora?
La lista: nivel lógico ¿Qué es una lista? En cada imagen vemos objetos diferentes, pero cada uno ilustra un concepto común: la  lista enlazada . Así, definiremos una lista enlazada como: CD Disco Duro  Diskette Memoria SD DVD Estructura de datos organizada linealmente, que se caracteriza porque cada uno de sus elementos tiene que indicar dónde se encuentra el siguiente elemento de la lista. 1 Aguirre 2 Barilá 3 Colombo
Cada elemento de la lista  unaLista  se almacena en un  nodo  que contiene la  información y un valor  que indica en dónde se encuentra el siguiente  dato  de la lista Veamos el siguiente esquema: Q Z R U unaLista
La lista debe ser inicializada para poder empezar a utilizarla. Con la operación  Crear  se compone una lista vacía.  Llamaremos  Insertar  a la operación de añadir un elemento y  Suprimir  a la operación de tomar un elemento  existente  en ésta.  Para poder sacar elementos de una lista, debemos poder chequear si la lista contiene algún elemento, por lo que necesitamos una operación booleana que denominaremos  Vacía .  Dado que la precondición del procedimiento  Suprimir  es que el elemento exista en la lista, agregaremos una función  Está  cuyo  valor será verdadero o falso según la existencia o no de  valor  en la lista. Las operaciones  Insertar  y  Suprimir  son las ventanas en el encapsulamiento de la lista, a través de las cuales pasan los datos de ésta.  Puede ocurrir que durante un proceso debamos trabajar nuevamente con una  Lista desde su estado vacío. Para ello, deberemos limpiarla, es decir, liberar todos sus nodos. Esa acción se logra mediante el procedimiento Limpiar.  Todas las operaciones conforman un  paquete  a través del cual se maneja cada una de las acciones sobre una lista. ¿Qué operaciones se necesitan?
¿Qué variedades de listas hay? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Q Z R U Lista enlazada B H R W Lista enlazada ordenada
Lista enlazada circular Juan Pepe Tita Coca Lista doblemente enlazada W P T D
Lista doblemente enlazada circular B A K R Lista doblemente enlazada ordenada F Y J M
¿Qué las diferencia? La diferencia entre cada una de ellas es el modelo de datos que representa. En una lista enlazada, el orden de los valores es irrelevante. Por lo que se puede insertar desde cualquier punto, siempre y cuando se conserven los enlaces. En general se simplifica insertando por el comienzo. Y se suprime el elemento buscado, por lo que puede estar en cualquier posición. En una lista enlazada ordenada, el elemento que se inserta debe estar en la posición que le corresponde según el criterio de orden, por lo que , para insertar, deberá buscarse primero la posición en la que debe ir y luego acomodar los enlaces. En una lista circular no hay ni primer elemento ni último. Veremos su TAD próximamente. En una lista doblemente enlazada, cada elemento está enlazado con el siguiente y con el anterior, y si además están ordenados, para insertar deberemos tener en cuenta la posición en la que deberá ubicarse. En Algorítmica y Programación II las estudiaremos en profundidad.
Arbol: nivel lógico ¿Qué es un árbol? En cada imagen vemos objetos diferentes, pero cada uno ilustra un concepto común: un árbol. La característica que lo hace propio es la jerarquización de objetos, los enlaces que pueden ser múltiples y el recorrido que puede plantearse desde una raiz, ya sea desde la tierra (el árbol perteneciente al reino vegetal),  desde la jerarquía máxima (el Director de una organización), o desde la ascendencia o descendencia de un árbol genealógico. Director Gerente de Personal Gerente de Producción Gerente de Sistemas Programadores Jefe de servicio Secretaria Liquidaciones
Un árbol es una estructura de datos en forma jerárquica o de niveles, en cuyos elementos puede existir una relación de uno a muchos (1:n). Veamos la terminología básica de las estructuras jerárquicas o árboles ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],No pulse el mouse
Árbol general es aquel en el que no se considera ninguna limitación en el grado máximo de sus nodos.  Los árboles n-arios son aquellos en los que el grado máximo de sus nodos es  n , siendo  n  un número positivo. Así, comenzaremos nuestro estudio de los Árboles Binarios. El nodo raiz es el 9. El hijo derecho de 9 es 15. El hijo derecho de 18 es 25. El hijo izquierdo de 9 es 5. El hijo izquierdo de 12 es 10. El nodo padre de 3 y 7 es 5. El nodo padre de 10 es 12. Los nodos hojas son 1, 7, 10 y 25. Los hermanos son (3 y 7), (12 y 18), (5 y 15). Los ancestros de 10 son: 12, 15 y 9. Los descendientes de 5 son 3, 1 y 7. El subárbol derecho de 9 es el que tiene raiz al 15. El subárbol izquierdo de 9 es el que tiene raiz al 5. El nodo de nivel 0 es el 9. Los nodos de nivel 1 son 5 y 15. Los nodos de nivel 2 son 3,7,12 y 18. Los nodos de nivel 3 son 1, 10 y25. No pulse el mouse
Árbol Binario de Búsqueda Un árbol binario de búsqueda es una estructura de datos que guarda información  no  repetida, en el que cada nodo apunta  como máximo  a otros dos nodos, y además cumplen con un ordenamiento de tal forma que  para cada elemento  del ABB, los elementos menores están a su izquierda (subárbol izquierdo), y los mayores a su derecha (subárbol derecho).
El árbol se debe inicializar para poder empezar a utilizarlo. Con la operación  Crear  se compone un árbol vacío.  Insertar  es la operación de añadir un elemento y  Suprimir  a la operación de tomar un elemento  existente  en éste.  Para poder sacar elementos de un árbol, debemos poder chequear si éste contiene algún elemento, por lo que necesitamos una operación booleana que denominaremos  Vacío .  Las operaciones  Insertar  y  Suprimir  son las ventanas en el encapsulamiento del árbol, a través de las cuales pasan los datos de éste.  Obviamente que deberá especificarse la operación  Buscar , y veremos también que podemos visualizar los elementos de un árbol, por lo que se lo deberá  Recorrer  de diversas maneras. Puede ocurrir que durante un proceso debamos trabajar nuevamente con un  Arbol desde su estado vacío. Para ello, deberemos limpiarlo, es decir, liberar todos sus nodos. Esa acción se logra mediante el procedimiento  Limpiar .  Todas las operaciones conforman un  paquete  a través del cual se maneja cada una de las acciones sobre un árbol. ¿Qué operaciones se necesitan?
Recorridos de un árbol binario En las siguientes diapositivas verá, a través del cambio de color, cómo se recorren los nodos en los distintos tipos de recorrido. Hay tres formas de recorrer un árbol binario:  Inorden ,  Preorden  y  Posorden . Cada una de éstas tiene su particularidad, y por lo tanto, su aplicación específica. Veamos primero cada forma y en las siguientes diapositivas las ilustraremos. En el recorrido  Inorden , cada nodo se recorre  entre  su subárbol izquierdo y su subárbol derecho En el recorrido  Preorden , cada nodo se recorre  antes de  su subárbol izquierdo y su subárbol derecho En el recorrido  Posorden , cada nodo se recorre  después de  su subárbol izquierdo y su subárbol derecho
Recorrido Inorden InOrden :  B D E H K M N Q R S T V W Z N M H B K D E S R Q W Z V T Raiz Click para ver la evolución
PreOrden:  N E D B K H M S R Q W V T Z N M H B K D E S R Q W Z V T Recorrido Preorden Raiz Click para ver la evolución
PosOrden : B D H M K E Q R T V Z W S N Raiz N M H B K D E S R Q W Z V T Recorrido Posorden Click para ver la evolución

Más contenido relacionado

La actualidad más candente

Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
Robert Rivero
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
TAtiizz Villalobos
 
Recursividad
RecursividadRecursividad
Recursividad
Lester Sanchez
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacionoswchavez
 
Estructura de un metodo
Estructura de un metodoEstructura de un metodo
Estructura de un metodoElena Perz
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: Lista
Emerson Garay
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
Javier Rivera
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
Daniel Gomez Jaramillo
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)Fuerza Auriazul
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
Luis Igoodbad
 
Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaTAtiizz Villalobos
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
Carlos Alberto Cuervo Cardenas
 
Abstracción de datos
Abstracción de datosAbstracción de datos
Abstracción de datos
leonfdocristiano
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
José Antonio Sandoval Acosta
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
Alvaro Enrique Ruano
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
Lalo Chooper
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCristopher Morales Ruiz
 

La actualidad más candente (20)

Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Recursividad
RecursividadRecursividad
Recursividad
 
ESTRUCTURAS ANIDADAS
ESTRUCTURAS ANIDADASESTRUCTURAS ANIDADAS
ESTRUCTURAS ANIDADAS
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
 
Estructura de un metodo
Estructura de un metodoEstructura de un metodo
Estructura de un metodo
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: Lista
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benita
 
Manejo de archivos en c#
Manejo de archivos en c#Manejo de archivos en c#
Manejo de archivos en c#
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Abstracción de datos
Abstracción de datosAbstracción de datos
Abstracción de datos
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 

Destacado

Estructura de datos lineales y no lineales
Estructura de datos lineales y no linealesEstructura de datos lineales y no lineales
Estructura de datos lineales y no lineales
los4estatidinamicos
 
concepto de estructuras de datos
concepto de estructuras de datosconcepto de estructuras de datos
concepto de estructuras de datos
Eduardo Robayo Castro
 
Tendencias en Compensaciones
Tendencias en CompensacionesTendencias en Compensaciones
Tendencias en Compensaciones
Ignacio Fernández
 
Estructuras estables, inestables y Perfiles Estructurales
Estructuras estables, inestables y Perfiles EstructuralesEstructuras estables, inestables y Perfiles Estructurales
Estructuras estables, inestables y Perfiles Estructurales
IES JULIO VERNE
 
Taller de Compensaciones
Taller de CompensacionesTaller de Compensaciones
Taller de Compensaciones
Augusto Prada
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binariosfavi_hola
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
Actimel
 
estructuras de control
estructuras de controlestructuras de control
estructuras de control
Gaby Andrade
 
Listas enlazadas
Listas enlazadasListas enlazadas
LISTAS DOBLEMENTE ENCADENADAS
LISTAS DOBLEMENTE ENCADENADASLISTAS DOBLEMENTE ENCADENADAS
LISTAS DOBLEMENTE ENCADENADAS
HEIVER CUESTA
 
Trabajando con datos Compuestos
Trabajando con datos CompuestosTrabajando con datos Compuestos
Trabajando con datos Compuestos
Martin Coronel
 
Pila dinamica y pila estatica
Pila dinamica y pila estaticaPila dinamica y pila estatica
Pila dinamica y pila estatica
JoeCorp
 
Compensación y Beneficiosen Gestión Humana
Compensación y Beneficiosen Gestión HumanaCompensación y Beneficiosen Gestión Humana
Compensación y Beneficiosen Gestión HumanaPerla Stepanie
 
Definir datos estructurados
Definir datos estructuradosDefinir datos estructurados
Definir datos estructurados
profe.gguacaran
 
Estructuras estáticas de datos
Estructuras estáticas de datosEstructuras estáticas de datos
Estructuras estáticas de datosjesusgc16
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
NANO-06
 
La dinámica de la litósfera
La dinámica de la litósferaLa dinámica de la litósfera
La dinámica de la litósferamori123
 
La hidrosfera terrestre
La hidrosfera terrestreLa hidrosfera terrestre
La hidrosfera terrestre
Manuel Fernando Pérez Escrivá
 

Destacado (20)

Estructura de datos lineales y no lineales
Estructura de datos lineales y no linealesEstructura de datos lineales y no lineales
Estructura de datos lineales y no lineales
 
concepto de estructuras de datos
concepto de estructuras de datosconcepto de estructuras de datos
concepto de estructuras de datos
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Tendencias en Compensaciones
Tendencias en CompensacionesTendencias en Compensaciones
Tendencias en Compensaciones
 
Estructuras estables, inestables y Perfiles Estructurales
Estructuras estables, inestables y Perfiles EstructuralesEstructuras estables, inestables y Perfiles Estructurales
Estructuras estables, inestables y Perfiles Estructurales
 
Taller de Compensaciones
Taller de CompensacionesTaller de Compensaciones
Taller de Compensaciones
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Tipos de Estructuras
Tipos de EstructurasTipos de Estructuras
Tipos de Estructuras
 
estructuras de control
estructuras de controlestructuras de control
estructuras de control
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
LISTAS DOBLEMENTE ENCADENADAS
LISTAS DOBLEMENTE ENCADENADASLISTAS DOBLEMENTE ENCADENADAS
LISTAS DOBLEMENTE ENCADENADAS
 
Trabajando con datos Compuestos
Trabajando con datos CompuestosTrabajando con datos Compuestos
Trabajando con datos Compuestos
 
Pila dinamica y pila estatica
Pila dinamica y pila estaticaPila dinamica y pila estatica
Pila dinamica y pila estatica
 
Compensación y Beneficiosen Gestión Humana
Compensación y Beneficiosen Gestión HumanaCompensación y Beneficiosen Gestión Humana
Compensación y Beneficiosen Gestión Humana
 
Definir datos estructurados
Definir datos estructuradosDefinir datos estructurados
Definir datos estructurados
 
Estructuras estáticas de datos
Estructuras estáticas de datosEstructuras estáticas de datos
Estructuras estáticas de datos
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
La dinámica de la litósfera
La dinámica de la litósferaLa dinámica de la litósfera
La dinámica de la litósfera
 
La hidrosfera terrestre
La hidrosfera terrestreLa hidrosfera terrestre
La hidrosfera terrestre
 

Similar a Estructuras dinámicas

PAILAS Y COLAS EN LA ULEAM FVD
PAILAS Y COLAS EN LA ULEAM FVDPAILAS Y COLAS EN LA ULEAM FVD
PAILAS Y COLAS EN LA ULEAM FVD
Franco Snipes
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Edward Mejia Gomez
 
Gilmora
GilmoraGilmora
Gilmora
gilmorak56
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
viela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
viela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
viela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
viela6
 
Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette I. Pimentel S
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337CJrosario2
 
Tad lista, pilas y colas
Tad lista, pilas y colasTad lista, pilas y colas
Tad lista, pilas y colaslabarra90
 
Tad lista, pilas y colas
Tad lista, pilas y colasTad lista, pilas y colas
Tad lista, pilas y colaslabarra90
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colasAmaury Pascal
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colasAmaury Pascal
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Actividad7
Actividad7Actividad7
Actividad7
MirianPintoWelchez
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
charlezgt
 
Estructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje cEstructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje c
CarlosRamsesGp
 
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Rubi Veronica Chimal Cuxin
 

Similar a Estructuras dinámicas (20)

PAILAS Y COLAS EN LA ULEAM FVD
PAILAS Y COLAS EN LA ULEAM FVDPAILAS Y COLAS EN LA ULEAM FVD
PAILAS Y COLAS EN LA ULEAM FVD
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
Gilmora
GilmoraGilmora
Gilmora
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colas
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Tad lista, pilas y colas
Tad lista, pilas y colasTad lista, pilas y colas
Tad lista, pilas y colas
 
Tad lista, pilas y colas
Tad lista, pilas y colasTad lista, pilas y colas
Tad lista, pilas y colas
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Actividad7
Actividad7Actividad7
Actividad7
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Micromundos Para Desocupados Parte Ii
Micromundos Para Desocupados Parte IiMicromundos Para Desocupados Parte Ii
Micromundos Para Desocupados Parte Ii
 
Estructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje cEstructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje c
 
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
 

Último

1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
jheisonraulmedinafer
 
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIAFICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
JavierMontero58
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 

Último (20)

1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
 
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIAFICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 

Estructuras dinámicas

  • 1. Estructuras Dinámicas Una primera aproximación
  • 2. Estática vs Dinámica En un sentido general, un componente es estático cuando no se transforma a lo largo del tiempo, y por el contrario, es dinámico cuando evoluciona en el tiempo. Desde el punto de vista abstracto (lógico), las estructuras de datos también poseen ese atributo. De allí que una estructura es estática cuando su configuración no se modifica a lo largo de su uso. Y aquellas estructuras que sufren cambios en su composición, a lo largo del tiempo, son dinámicas. Es así que podemos agrupar las estructuras de datos en: Estáticas : vector, matriz, registro, cadena. Dinámicas : pila, cola, lista, árbol, grafo. Hasta el momento hemos estudiado las estructuras de datos estáticas, sus operaciones y aplicación. Veremos a continuación algunas de las estructuras dinámicas cuya “anatomía” se corresponde con el alcance de este curso, y en Algorítmica y Programación II profundizaremos su estudio e incorporaremos otras.
  • 3. La pila: nivel lógico ¿Qué es una pila? Aunque los objetos de cada imagen son todos diferentes, cada uno ilustra un concepto común: la pila . Así, definiremos una pila como: Conjunto ordenado de elementos homogéneos, de los que se puede añadir nuevos elementos o quitar elementos existentes por la cabeza de la pila.
  • 4. Se considera a la pila un grupo ordenado porque los elementos están dispuestos de acuerdo a cuánto tiempo llevan en la pila. Dado que los elementos se añaden y quitan sólo por la cabeza de la pila, el último elemento añadido es el primero en ser quitado. De esto se sintetiza el concepto de pila como “el Último en entrar es el Primero en salir” : LIFO (acrónimo en inglés de Last In First Out) Pila: estructura de datos en la que los elementos se añaden y quitan sólo por un extremo. Pero para definir el tipo de datos abstracto (TAD) Pila , no es suficiente la estructura lógica. Debemos definir también el conjunto de operaciones que permita al usuario acceder y manipular los elementos almacenados en una pila. Como la pila es una estructura dinámica, cambia conforme se añaden y quitan elementos en ésta.
  • 5. Llamaremos Meter a la operación de añadir un elemento por la cabeza de la pila (Push) y Sacar a la operación que toma el elemento que está en la cabeza de la pila y lo quita (Pop). La pila debe ser creada para poder empezar a utilizarla, por lo que se crea una pila vacía. A esa operación la llamaremos CrearPila . Y para poder sacar elementos de una pila, debemos poder chequear si la pila contiene algún elemento, por lo que necesitamos una operación booleana que denominaremos PilaVacía . Puede ocurrir en alguna implementación que deba testearse si una pila está llena. En ese caso, la operación booleana se llamará PilaLlena. Pero esto es válido sólo en caso de que la implementación lo requiera. No desde el Tipo abstracto de datos (TAD). Las operaciones Meter y Sacar son las ventanas en el encapsulamiento de la pila, a través de las cuales pasan los datos de la pila. Estas operaciones son un paquete a través del cual se manejan todas las acciones sobre una pila, independientemente de la forma en que estén implementadas.
  • 6. Uso de una pila en una aplicación Consideremos un procedimiento que lee una cadena e imprime sus caracteres en orden inverso. La cadena de entrada termina con un blanco, el que no debe imprimirse como parte de la cadena inversa: ImpInversa Repetir Leer carácter Si carácter <> blanco entonces Meter (Pila, carácter) Hasta carácter = blanco Mientras no PilaVacía(Pila) hacer comienza Sacar (Pila, carácter) Imprimir carácter termina
  • 7. Pendientes Plazo fijo Service PC Arreglar Bomba agua ¿Qué es lo primero que se va a realizar? ¿luego? ¿finalmente? Pendientes está vacío, por lo que las tareas han sido satisfechas
  • 8. La cola: nivel lógico ¿Qué es una cola? En cada imagen vemos objetos diferentes, pero cada uno ilustra un concepto común: la cola . Así, definiremos una cola como: Conjunto ordenado de elementos homogéneos, de los que se puede añadir nuevos elementos por un extremo y eliminar elementos existentes por el otro.
  • 9. Se considera a la cola un grupo ordenado porque los elementos están dispuestos de acuerdo a cuánto tiempo llevan en la misma. Dado que los elementos se añaden por el final de la cola, el primer elemento añadido es el primero en ser quitado. De esto se sintetiza el concepto de cola como “el Primero en entrar es el Primero en salir”: FIFO (acrónimo en inglés de First In First Out) Cola: estructura de datos en la que los elementos se añaden por un extremo( el final) y quitan por el otro (el frente). Pero para definir el tipo de datos abstracto (TAD) Cola , no es suficiente la estructura lógica. Debemos definir también el conjunto de operaciones que permita al usuario acceder y manipular los elementos almacenados en una cola. Como ésta es una estructura dinámica, cambia conforme se eliminan y suprimen elementos.
  • 10. Llamaremos InsCola a la operación de añadir un elemento por el final de la cola y SupCola a la operación que toma el elemento que está en en frente de la cola y lo quita. La cola debe ser creada para poder empezar a utilizarla, por lo que se crea una cola vacía. A esa operación la llamaremos CrearCola . Y para poder sacar elementos de una cola, debemos poder chequear si la cola contiene algún elemento, por lo que necesitamos una operación booleana que denominaremos ColaVacía . Puede ocurrir en alguna implementación que deba testearse si una cola está llena. En ese caso, la operación booleana se llamará ColaLlena. Pero esto es válido sólo en caso de que la implementación lo requiera. No desde el TAD. Las operaciones InsCola y SupCola son las ventanas en el encapsulamiento de la cola, a través de las cuales pasan los datos de la cola. Estas operaciones son un paquete a través del cual se manejan todas las acciones sobre una cola, independientemente de la forma en que estén implementadas.
  • 11. Uso de una cola en una aplicación Consideremos un procedimiento que lee dos subcadenas de caracteres, separadas por un punto. Y determina si ambas subcadenas son iguales o no. Iguales  verdadero Repetir Leer carácter Si carácter <> punto entonces Ins_Cola (frase, carácter) Hasta carácter =punto Mientras iguales ^ no ColaVacía(frase) hacer comienza Leer carácter Sup_Cola (frase, letra) si carácter/=letra entonces iguales  falso fin si termina mientras Si iguales entonces escribir “ambas subcadenas son iguales” fin si
  • 12. Fotocopiadora Güemes Rosas Quiroga ¿A quién atienden primero? ¿luego? ¿quién sigue en la cola? Fotocopiadora está vacía. Pueden ir a tomar mate al fondo!!!!! Urquiza ¿y ahora?
  • 13. La lista: nivel lógico ¿Qué es una lista? En cada imagen vemos objetos diferentes, pero cada uno ilustra un concepto común: la lista enlazada . Así, definiremos una lista enlazada como: CD Disco Duro Diskette Memoria SD DVD Estructura de datos organizada linealmente, que se caracteriza porque cada uno de sus elementos tiene que indicar dónde se encuentra el siguiente elemento de la lista. 1 Aguirre 2 Barilá 3 Colombo
  • 14. Cada elemento de la lista unaLista se almacena en un nodo que contiene la información y un valor que indica en dónde se encuentra el siguiente dato de la lista Veamos el siguiente esquema: Q Z R U unaLista
  • 15. La lista debe ser inicializada para poder empezar a utilizarla. Con la operación Crear se compone una lista vacía. Llamaremos Insertar a la operación de añadir un elemento y Suprimir a la operación de tomar un elemento existente en ésta. Para poder sacar elementos de una lista, debemos poder chequear si la lista contiene algún elemento, por lo que necesitamos una operación booleana que denominaremos Vacía . Dado que la precondición del procedimiento Suprimir es que el elemento exista en la lista, agregaremos una función Está cuyo valor será verdadero o falso según la existencia o no de valor en la lista. Las operaciones Insertar y Suprimir son las ventanas en el encapsulamiento de la lista, a través de las cuales pasan los datos de ésta. Puede ocurrir que durante un proceso debamos trabajar nuevamente con una Lista desde su estado vacío. Para ello, deberemos limpiarla, es decir, liberar todos sus nodos. Esa acción se logra mediante el procedimiento Limpiar. Todas las operaciones conforman un paquete a través del cual se maneja cada una de las acciones sobre una lista. ¿Qué operaciones se necesitan?
  • 16.
  • 17. Q Z R U Lista enlazada B H R W Lista enlazada ordenada
  • 18. Lista enlazada circular Juan Pepe Tita Coca Lista doblemente enlazada W P T D
  • 19. Lista doblemente enlazada circular B A K R Lista doblemente enlazada ordenada F Y J M
  • 20. ¿Qué las diferencia? La diferencia entre cada una de ellas es el modelo de datos que representa. En una lista enlazada, el orden de los valores es irrelevante. Por lo que se puede insertar desde cualquier punto, siempre y cuando se conserven los enlaces. En general se simplifica insertando por el comienzo. Y se suprime el elemento buscado, por lo que puede estar en cualquier posición. En una lista enlazada ordenada, el elemento que se inserta debe estar en la posición que le corresponde según el criterio de orden, por lo que , para insertar, deberá buscarse primero la posición en la que debe ir y luego acomodar los enlaces. En una lista circular no hay ni primer elemento ni último. Veremos su TAD próximamente. En una lista doblemente enlazada, cada elemento está enlazado con el siguiente y con el anterior, y si además están ordenados, para insertar deberemos tener en cuenta la posición en la que deberá ubicarse. En Algorítmica y Programación II las estudiaremos en profundidad.
  • 21. Arbol: nivel lógico ¿Qué es un árbol? En cada imagen vemos objetos diferentes, pero cada uno ilustra un concepto común: un árbol. La característica que lo hace propio es la jerarquización de objetos, los enlaces que pueden ser múltiples y el recorrido que puede plantearse desde una raiz, ya sea desde la tierra (el árbol perteneciente al reino vegetal), desde la jerarquía máxima (el Director de una organización), o desde la ascendencia o descendencia de un árbol genealógico. Director Gerente de Personal Gerente de Producción Gerente de Sistemas Programadores Jefe de servicio Secretaria Liquidaciones
  • 22.
  • 23. Árbol general es aquel en el que no se considera ninguna limitación en el grado máximo de sus nodos. Los árboles n-arios son aquellos en los que el grado máximo de sus nodos es n , siendo n un número positivo. Así, comenzaremos nuestro estudio de los Árboles Binarios. El nodo raiz es el 9. El hijo derecho de 9 es 15. El hijo derecho de 18 es 25. El hijo izquierdo de 9 es 5. El hijo izquierdo de 12 es 10. El nodo padre de 3 y 7 es 5. El nodo padre de 10 es 12. Los nodos hojas son 1, 7, 10 y 25. Los hermanos son (3 y 7), (12 y 18), (5 y 15). Los ancestros de 10 son: 12, 15 y 9. Los descendientes de 5 son 3, 1 y 7. El subárbol derecho de 9 es el que tiene raiz al 15. El subárbol izquierdo de 9 es el que tiene raiz al 5. El nodo de nivel 0 es el 9. Los nodos de nivel 1 son 5 y 15. Los nodos de nivel 2 son 3,7,12 y 18. Los nodos de nivel 3 son 1, 10 y25. No pulse el mouse
  • 24. Árbol Binario de Búsqueda Un árbol binario de búsqueda es una estructura de datos que guarda información no repetida, en el que cada nodo apunta como máximo a otros dos nodos, y además cumplen con un ordenamiento de tal forma que para cada elemento del ABB, los elementos menores están a su izquierda (subárbol izquierdo), y los mayores a su derecha (subárbol derecho).
  • 25. El árbol se debe inicializar para poder empezar a utilizarlo. Con la operación Crear se compone un árbol vacío. Insertar es la operación de añadir un elemento y Suprimir a la operación de tomar un elemento existente en éste. Para poder sacar elementos de un árbol, debemos poder chequear si éste contiene algún elemento, por lo que necesitamos una operación booleana que denominaremos Vacío . Las operaciones Insertar y Suprimir son las ventanas en el encapsulamiento del árbol, a través de las cuales pasan los datos de éste. Obviamente que deberá especificarse la operación Buscar , y veremos también que podemos visualizar los elementos de un árbol, por lo que se lo deberá Recorrer de diversas maneras. Puede ocurrir que durante un proceso debamos trabajar nuevamente con un Arbol desde su estado vacío. Para ello, deberemos limpiarlo, es decir, liberar todos sus nodos. Esa acción se logra mediante el procedimiento Limpiar . Todas las operaciones conforman un paquete a través del cual se maneja cada una de las acciones sobre un árbol. ¿Qué operaciones se necesitan?
  • 26. Recorridos de un árbol binario En las siguientes diapositivas verá, a través del cambio de color, cómo se recorren los nodos en los distintos tipos de recorrido. Hay tres formas de recorrer un árbol binario: Inorden , Preorden y Posorden . Cada una de éstas tiene su particularidad, y por lo tanto, su aplicación específica. Veamos primero cada forma y en las siguientes diapositivas las ilustraremos. En el recorrido Inorden , cada nodo se recorre entre su subárbol izquierdo y su subárbol derecho En el recorrido Preorden , cada nodo se recorre antes de su subárbol izquierdo y su subárbol derecho En el recorrido Posorden , cada nodo se recorre después de su subárbol izquierdo y su subárbol derecho
  • 27. Recorrido Inorden InOrden : B D E H K M N Q R S T V W Z N M H B K D E S R Q W Z V T Raiz Click para ver la evolución
  • 28. PreOrden: N E D B K H M S R Q W V T Z N M H B K D E S R Q W Z V T Recorrido Preorden Raiz Click para ver la evolución
  • 29. PosOrden : B D H M K E Q R T V Z W S N Raiz N M H B K D E S R Q W Z V T Recorrido Posorden Click para ver la evolución