Clase3
-
Upload
jorge-gamez -
Category
Documents
-
view
570 -
download
0
Transcript of Clase3
www.unaj.edu.ar
Algoritmos y Programación
Temario
• Abstracción• Encapsulamiento• Tipos abstractos de datos
• Diferencia entre tipo de datos y tipo abstracto de datos
• TAD Pila y Cola
www.unaj.edu.ar
Algoritmos y Programación
Abstracción• La abstracción es la representación de las
características esenciales de un objeto o entidad.
• Consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan.
• La abstracción es una de las herramientas que más nos ayuda a la hora de solucionar un problema.
www.unaj.edu.ar
Algoritmos y Programación
Abstracción• Es un mecanismo fundamental para la
comprensión de problemas y fenómenos que poseen una gran cantidad de detalles.
www.unaj.edu.ar
Algoritmos y Programación
Abstracción• A grandes rasgos, la abstracción, permite que
dispongamos de las características de un objeto que necesitemos para resolver un problema.
www.unaj.edu.ar
Algoritmos y Programación
EncapsulamientoSe denomina encapsulamiento al ocultamiento del estado interno, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para el mismo.
www.unaj.edu.ar
Algoritmos y Programación
Encapsulamiento de Datos
• Este aislamiento protege a los datos asociados a un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.
• El usuario del objeto puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos.
www.unaj.edu.ar
Algoritmos y Programación
¿Qué es un TAD?• Un tipo abstracto de datos, o TAD, especifica:
– Un conjunto de operaciones (o métodos) denominados usualmente su interfaz pública y representan el comportamiento del TAD.
– La semántica de las operaciones (lo que hacen).
• Pero no especifica la implementación de las operaciones.
• Esto es lo que lo convierte en abstracto.
www.unaj.edu.ar
Algoritmos y Programación
¿Qué es un TAD?
• Sólo podemos modificar el estado interno del TAD con las operaciones definidas.
• La implementación interna del TAD está oculta al programa cliente que lo usa.
Programa Cliente
www.unaj.edu.ar
Algoritmos y Programación
¿Para qué sirve TAD?
• Abstracción: Los usuarios de un TAD no necesitan conocer sus detalles de implementación.
• Reutilización: un TAD puede ser utilizado por distintos programas.
• Corrección: al reutilizar código ya probado y forzar a utilizar la estructura de datos correctamente.
•
www.unaj.edu.ar
Algoritmos y Programación
Diferencia entre tipo de datos y tipo abstracto de datos
• Los datos son los valores que manejamos en la resolución de un problema.
• Un tipo de dato se puede definir como un conjunto de valores y un conjunto de operaciones definidas para esos valores.
• Los tipos de datos abstractos extienden la función de un tipo de dato ocultando la implementación de las operaciones definidas por el usuario.
www.unaj.edu.ar
Algoritmos y Programación
TAD Pila
• Una pila es una colección, lo que significa que es una estructura de datos que contiene elementos múltiples.
• La pila implementa una estructura “último en entrar primero en salir” (“last in, first out” en inglés), o LIFO, porque el elemento añadido en último lugar es el primero que extraemos.
www.unaj.edu.ar
Algoritmos y Programación
TAD Pila
• Las operaciones básicas que se pueden realizar con una pila son apilar (push) y desapilar (pop).
Sacamos el último elemento agregado
Sacamos el último elemento agregado
Agregamos un elemento al final
Agregamos un elemento al final
www.unaj.edu.ar
Algoritmos y Programación
TAD Pila• Las operaciones apilar (push) y desapilar (pop)
que constituyen las mínimas necesarias para manipular una pila (de lo que sea) forman parte de la interfaz pública del TAD pila.
• Otras operaciones posibles:– Tope (top): devuelve el elemento en el tope de
la pila.– Está Vacía (isEmpty): prueba si la pila está
vacía.
www.unaj.edu.ar
Algoritmos y Programación
TAD Pila en Python
• Tenemos las operaciones básicas, y ahora, como implementamos el TAD Pila en Python?
• Que estructura de datos conocida puede ser utilizada para representar internamente la Pila?
www.unaj.edu.ar
Algoritmos y Programación
TAD Pila en Python usando listas
Inicializamos la lista
Inicializamos la lista
Utilizamos el método append para hacer el push
Utilizamos el método append para hacer el pushEl método pop
funciona de manera similar
El método pop funciona de manera similar
www.unaj.edu.ar
Algoritmos y Programación
TAD Pila en Python usando listas
• Una pila es una estructura genérica de datos, lo significa que se puede añadir cualquier tipo de elementos a ella.
• Ej:
<type 'int'><type 'float'><type 'str'>
<type 'int'><type 'float'><type 'str'>
www.unaj.edu.ar
Algoritmos y Programación
TAD Pila en Python usando listas
• Se pueden utilizar isEmpty y pop para quitar e imprimir todos los elementos en la pila:
• Ej:
www.unaj.edu.ar
Algoritmos y Programación
TAD Cola• En la vida real, una cola es una fila de clientes
esperando un servicio de algún tipo. • En la mayoría de los casos, el primer cliente de la
fila es el primero al que se va a servir.
www.unaj.edu.ar
Algoritmos y Programación
TAD Cola
• La regla que determina quién va primero se llama táctica de encolamiento.
• La táctica de encolamiento más simple se llama FIFO, de “first-in-first-out”, “el primero que entra es el primero que sale”.
• Al igual que la pila, una cola es una colección de elementos.
www.unaj.edu.ar
Algoritmos y Programación
TAD Cola• El TAD Cola se define a través de las operaciones
de encolado (push) y desencolado (pop).
Sacamos el primer elemento agregado
Sacamos el primer elemento agregado
Agregamos un elemento al final
Agregamos un elemento al final
www.unaj.edu.ar
Algoritmos y Programación
TAD Cola
• Al igual que con el TAD Pila, otras operaciones posibles:– Tope (top): devuelve el elemento al principio de
la cola.– Está Vacía (isEmpty): prueba si la cola está
vacía.
www.unaj.edu.ar
Algoritmos y Programación
TAD Cola en Python
• Tenemos las operaciones básicas, y ahora, como implementamos el TAD Cola en Python?
• Que diferencias hay con el TAD Pila?
www.unaj.edu.ar
Algoritmos y Programación
TAD Cola en Python
• La diferencia se encuentra en que elemento es retirado de la cola.
• Ahora se quita el primer elemento agregado, no el
último.
www.unaj.edu.ar
Algoritmos y Programación
TAD Cola en Python usando listasEl método pop de colas:
1. Obtenemos el elemento en la 1ra posición
1. Obtenemos el elemento en la 1ra posición2. Eliminamos el elemento de esa posicion.
2. Eliminamos el elemento de esa posicion.3. Retornamos el elemento
3. Retornamos el elemento