Pilas y Colas Fundamentos Estructuras de Datos (Programación 2)

Slides:



Advertisements
Presentaciones similares
Definición Las colas ofrecen dos operaciones fundamentales, que son encolar (al final de la cola) y desencolar (del comienzo de la cola). Al igual que.
Advertisements

PILA.
ESTRUCTURA DE DATOS Unidad 03 PILAS.
Curso de Microsoft® Word 2010
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
ESTRUCTURAS LINEALES UNIDAD 3.
Aprendizaje de Microsoft® Access® 2010
Universidad Central II-35 Estructuras de Datos
Realizado por: Ing. Mauricio Rivera1 Colas. Realizado por: Ing. Mauricio Rivera2 ¿Qué es una Cola? Una cola es un grupo ordenado de elementos homogéneos.
Estructuras de datos y algoritmos
Tipo de Dato Abstracto Tipos de datos:
PROGRAMACION DE Pilas o Stacks y Colas
Estructuras de Datos Especificación formal de Listas.
DE LAS CUENTAS DE USUARIO Y OPCIONES DE CARPETA
LOGICA DE NEGOCIOS ADAN GONZALEZ BARRERA.
Tema Nº4.
COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS
Pilas Una pila es una estructura lineal de elementos en donde se pueden agregar o eliminar datos únicamente por uno de los dos extremos. En consecuencia.
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
UNIDAD I Conceptos Básicos.
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
POR: Meza Guevara Sandra Fabiola Contreras Meléndez Damariz Figueroa Cisneros Ricardo UNIVERSIDAD TECNOLÓGICA DE DURANGO TECNOLÓGIAS DE LA INFORMACIÓN.
PILAS, COLAS, RECURSIVIDAD.
POP3 UCLV Mapas Conceptuales para la enseñanza de Redes de Computadoras.
Estructura de Datos y Algoritmos
TIPOS DE DATOS ABSTRACTOS
Diseño y análisis de algoritmos
SEMANA 9_3.
(Organización y Manejo de Archivos)
Descomposición Factorial Unidad 5
Pila1UVM Pilas. Pila2UVM Pila3UVM 2.1 Objetivos El estudiante manejará el tad Pila contigua.
AED3: Algoritmos y Estructuras de Datos 3.  Uno de los conceptos mas utiles en computacion es la pila o stack  Es un conjunto de elementos, en la que:
Material de apoyo Unidad 4 Estructura de datos
Pilas y Colas Estructuras de Datos.
TDA PILA ESTRUCTURAS DE DATOS.
Tipos de Datos. Entrada-Salida.. La entrada-salida (I/O) le permite a un programa comunicarse con el mundo exterior. Esta comunicación puede realizarse.
República Bolivariana de Venezuela. Ministerio del PP para la Defensa. Universidad Nacional Experimental de la Fuerza Armada. Cátedra: Instrucción Militar.
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
DISEÑO DE UNA ESTRUCTURA DE INDEXACION DE DATOS TOPOLOGICAMENTE CONTENIDO.
El escritorio y la barra de tareas
NUEVO DISEÑO SITIO WEB EXPLORA REGIÓN METROPOLITANA Resultados en cuanto a tráfico, posicionamiento y nuevas herramientas.
Punteros Recomendado: 1. Nivelación Funciones
Son estructuras de datos que almacenan y recuperan sus elementos atendiendo a un estricto orden (LIFO Last – in, first –out Ultimo en entrar – primero.
Ecuaciones Algebraicas
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
 Ignacio Soto Valdez R  Paola Karina Suarez Salazar R  Mario Alberto Castillo Aviles R
Taller de Herramientas de Presentación
Estructuras de datos Fundamentos de análisis y diseño de algoritmos.
INSTITUTO TECNOLOGICO DE APIZACO
UNIDAD IV. PILAS, COLAS, RECURSION APLICADAS A LENGUAJE C.
Ayudantia 3: Pilas- Colas
Lic. En C.C. Ann Margareth Meza Rodríguez
Matemáticas para la educación normal
IMPLEMENTACION DE COLAS MEDIANTE LISTAS
Lic. En C.C. Ann Margareth Meza Rodríguez
Estructura de Datos..
Estructura: COLA Profesor: Ing. Erick López Ch. M.R.I.
PROGRAMACION DE Pilas o Stacks
Estructura de Datos PILAS. es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In.
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
ESTRUCTURAS LINEALES “LA PILA”
Pilas Grupo 4. 1 Stack o Pila Definición: Una pila es una estructura de datos, a la cual se le puede ingresar o sacar elementos por un sólo lado. También.
PROGRAMACION DE Pilas o Stacks y Colas
Listas Dinámicas.
1 ListaUna Lista se define como una serie de N elementos E 1, E 2,..., E N, ordenados de manera consecutiva, es decir, el elemento E k (que se denomina.
¿Qué es una base de datos? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Desde.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada TIPOS ABSTRACTOS DE DATOS TAD Tema: TIPOS ABSTRACTOS DE DATOS TAD Subtema: COLAS.
Pilas y Colas Fundamentos.
Transcripción de la presentación:

Pilas y Colas Fundamentos Estructuras de Datos (Programación 2)

Pilas y Colas ¿Qué son? Pilas Colas Búsqueda de elementos Propiedades Estados Acciones Funcionamiento Conclusiones Colas Búsqueda de elementos Inversión de elementos Conclusiones finales Estructuras de Datos (Programación 2) Pilas y Colas

¿Qué son? Se trata de TDAs (Tipos de Datos Abstractos); forman parte de nuestro arsenal de herramientas de programación. En ambos casos, el comportamiento que tienen y su definición conceptual están íntimamente ligados. Si bien ambas TDAs permiten guardar información de acuerdo al orden que ésta llega, la forma en la cual esta información se extrae en distinto orden en una TDA con respecto a la otra. Estructuras de Datos (Programación 2) Pilas y Colas

¿Qué son? Son muy eficientes en cuanto a los tiempos de respuesta en la inserción y extracción de elementos, y más allá de la cantidad de elementos que contengan, pues siempre saben dónde insertar y qué extraer. Mientras se respeten sus características y funcionalidades, pueden ser implementadas de distintas maneras, sin afectar su uso (cambiar de una implementación a otra debería ser transparente). Estructuras de Datos (Programación 2) Pilas y Colas

Pilas Con respecto a la manipulación de sus elementos responde a la denominación LIFO: Last In First Out Esto implica que el último elemento en entrar será el primero en salir. Estructuras de Datos (Programación 2) Pilas y Colas

¿Por qué? Conceptualmente, las pilas fueron pensadas para cumplir con esta regla. Como estructura (TDA), posee un único punto de acceso a datos. Al tener un único punto de acceso, tanto para insertar como para extraer un elemento, siempre accederemos al último elemento insertado (el único visible), si es que la estructura no está vacía. Entrada Salida Tope Estructuras de Datos (Programación 2) Pilas y Colas

Ejemplos de Pilas En la vida real utilizamos pilas más frecuentemente de lo que creemos. Hay pilas de libros o revistas, de CDs, de platos; los tubos de pelotitas de tenis son un buen ejemplo (el tubo es la pila y las pelotitas los elementos… ¿Qué otras pilas se les ocurren? Estructuras de Datos (Programación 2) Pilas y Colas

Ejemplos de Pilas En informática las pilas se usan muchísimo. Quizá la más famosa de todas sea la conocida como pila de llamadas o call stack. Gracias a la existencia de esta pila los programas pueden guardar los puntos de retorno al llamar a subrutinas. También, en varios lenguajes, se usan pilas para guardar los datos que pasamos como parámetros. Esto se hace en forma automática y transparente para nosotros, y ayuda a usar la memoria disponible con eficiencia. Estructuras de Datos (Programación 2) Pilas y Colas

Propiedades de una Pila Estados Vacía Llena Acciones Crear/Inicializar Destruir/Vaciar Agregar (Elemento) Extraer (Elemento) Ver (Elemento) Tope Estructuras de Datos (Programación 2) Pilas y Colas

Ambos estados son booleanos (valen verdadero o falso) Pila vacía Estados de una Pila Ambos estados son booleanos (valen verdadero o falso) Pila vacía Se da siempre que la estructura no contiene elementos. Pila llena Se da cuando no hay más lugar para almacenar elementos. Estructuras de Datos (Programación 2) Pilas y Colas

Acciones sobre una Pila Agregar elemento Podemos agregar elementos, apilarlos, siempre que la pila no esté llena. Se conoce también como Push o, en nuestro idioma, Apilar. Extraer elemento Podemos extraer el último elemento insertado, desapilarlo, siempre y cuando la pila no esté vacía. Se conoce también como Pop o, en nuestro idioma, Desapilar. Ver Tope Sin quitarlo, podemos ver el elemento que está en la parte superior de la pila. Estructuras de Datos (Programación 2) Pilas y Colas

Funcionamiento de una Pila Al apilar C, éste tapa a B. En tope ahora encontramos a C. Tanto B como A quedan inaccesibles. Volvemos a encontrar a B en Tope. C B En tope, ahora, vemos a B, y A queda inaccesible. A En tope, entonces, se ve A. C Al desapilar C, el tope de la pila “desciende”. Tope (la pila vista desde arriba) B La pila está vacía. Al apilar el elemento B, éste queda “sobre” el elemento anterior. Podemos seguir así hasta que la pila quede completamente vacía, o hasta obtener el elemento que deseamos. A Al apilar el elemento A la pila deja de estar vacía. Aún no se ha apilado ningún elemento. (hacer click para continuar con la animación) Estructuras de Datos (Programación 2) Pilas y Colas

Pilas: Conclusiones Una pila es un TDA dedicado al almacenamiento y manipulación de elementos, sin que importe (a nivel conceptual) el tipo de dato que sean. Como TDA, su funcionalidad es siempre la misma, independientemente de la implementación que se haya utilizado. Esta funcionalidad cumple con la regla LIFO (el orden de salida de los elementos es inverso al de entrada) y es justamente lo que determina a una pila, pues fue pensada como una estructura para apilar y desapilar elementos. Por esto, las pilas poseen un único punto lógico de acceso y salida para sus elementos, y sólo vemos el último insertado. Estructuras de Datos (Programación 2) Pilas y Colas

Colas Con respecto a la manipulación de sus elementos responde a la denominación FIFO: First In First Out Esto implica que el primer elemento en entrar será el primero en salir. Estructuras de Datos (Programación 2) Pilas y Colas

Por aquí entran los elementos ¿Por qué? Porque fueron pensadas para mantener y manejar elementos respetando siempre y directamente su orden de llegada. Las colas tienen un punto de inserción de elementos y otro para la extracción de los mismos, y están en extremos opuestos (cabecera–final, frente–fondo, o primero–último). Por aquí entran los elementos Por aquí salen Fondo Frente Estructuras de Datos (Programación 2) Pilas y Colas

¿Esta cola es del que va a Tierra? Ejemplos de Colas Toda aquella organización donde el primero que llegue sea el primero en irse es una cola. Usamos colas diariamente. En el banco, en el cine, esperando un colectivo… ¡A la cola! ¿Esta cola es del que va a Tierra? Así es. Estructuras de Datos (Programación 2) Pilas y Colas

Ejemplos de Colas En informática las colas también se usan con bastante frecuencia. Uno de los ejemplos puede ser la cola de mensajes del sistema. Estructuras de Datos (Programación 2) Pilas y Colas

Propiedades de una Cola Estados Vacía Llena Acciones Crear/Inicializar Destruir/Vaciar Agregar (Elemento) Extraer (Elemento) Ver (Elemento) Cabecera Estructuras de Datos (Programación 2) Pilas y Colas

Ambos estados son booleanos (valen verdadero o falso) Cola vacía Estados de una Cola Ambos estados son booleanos (valen verdadero o falso) Cola vacía Se da siempre que la estructura no contiene elementos. Cola llena Se da cuando no hay más lugar para almacenar elementos. Estructuras de Datos (Programación 2) Pilas y Colas

Acciones sobre una Cola Agregar elemento Podemos agregar elementos siempre que la cola no esté llena. Siempre agregamos los elementos al final. Extraer elemento Podemos extraer el elemento insertado más antiguo, el cual se encuentra al frente, siempre y cuando la cola no esté vacía. Ver cabecera (también Ver Frente o Ver primero) Sin quitarlo, podemos ver el elemento que está próximo a salir (en la cabecera o frente de la cola), que no es otro que el primero. Estructuras de Datos (Programación 2) Pilas y Colas

Funcionamiento de una Cola B C A A Lo mismo pasa con C, que queda encolado detrás de B. C deberá esperar a que se desencolen A y B para llegar al frente. Arrancamos con la cola vacía, sin elementos. Ya tenemos un primer elemento agregado a la cola. Al extraer el primer elemento insertado, B pasa al frente. Al agregar B, éste queda detrás de A. Quedaría al final, encolado detrás de C. Podemos seguir así hasta vaciar la cola. Pero, si viniese nuevamente A y lo agregásemos a la cola, ¿en qué posición quedaría? C A A B En la cabecera no vemos elemento alguno. Podemos ver el elemento A en la cabecera (al frente). B, ahora, queda en la cabecera, mientras C sigue oculto tras éste, e inaccesible. A, el primer elemento agregado, sigue al frente; B queda oculto e inaccesible. Cabecera (la cola vista desde adelante) (hacer click para continuar con la animación) Estructuras de Datos (Programación 2) Pilas y Colas

Colas: Conclusiones Una cola es un TDA dedicado al almacenamiento y manipulación de elementos. Como TDA, su funcionalidad es siempre la misma, independientemente de la implementación que se haya utilizado. Su funcionalidad cumple con la regla FIFO (el orden de salida de los elementos es el mismo que el de entrada). Esto se debe a que las colas están diseñadas para devolver los elementos ordenados tal como llegan. Para esto, las colas poseen un punto de acceso y otro de salida que lógicamente están ubicados en extremos opuestos. Siempre vemos el elemento que está primero o al frente. Estructuras de Datos (Programación 2) Pilas y Colas

Búsqueda de elementos Ninguna de estas dos TDAs posee facilidades que posibiliten la búsqueda de elementos contenidos en ellas, pues eso escapa a su funcionalidad: las pilas siempre devuelven el último elemento, y las colas siempre el primero. ¿Cómo se les ocurre que debemos trabajar para encontrar algún elemento contenido en estas estructuras, siempre respetando las reglas LIFO y FIFO, según corresponda? Estructuras de Datos (Programación 2) Pilas y Colas

Inversión de elementos Dado que pilas y colas manejan sus elementos en forma completamente opuesta, al llevar los elementos de una estructura a la otra para luego volverlos a volcar en la estructura original, como resultado nos quedarán todos los elementos en posiciones inversas a las de origen. ¿Podemos comprobarlo? Estructuras de Datos (Programación 2) Pilas y Colas

¿Son estructuras realmente útiles? Conclusiones finales ¿Son estructuras realmente útiles? Los invitamos a encontrar en la vida diaria otros ejemplos donde usemos pilas y colas, distintos a los que nombramos en este trabajo. Estructuras de Datos (Programación 2) Pilas y Colas

Aclaración Si bien mostramos que los elementos se mueven hacia el frente de la cola, en la implementación no son los elementos los que se mueven, sino las marcas de frente y fondo, tal como se puede ver aquí. A B C A Frente Fondo Estructuras de Datos (Programación 2) Pilas y Colas