Vous êtes sur la page 1sur 25

Pilas y Colas

Fundamentos

Estructuras de Datos (Programacin 2)

Pilas y Colas

Pilas y Colas
Qu son? Pilas
Propiedades
Estados Acciones

Funcionamiento Conclusiones

Colas
Propiedades
Estados Acciones

Funcionamiento Conclusiones

Bsqueda de elementos Inversin de elementos Conclusiones finales


Estructuras de Datos (Programacin 2) Pilas y Colas

Qu son?
Se trata de TDAs (Tipos de Datos Abstractos); forman parte de nuestro arsenal de herramientas de programacin. En ambos casos, el comportamiento que tienen y su definicin conceptual estn ntimamente ligados. Si bien ambas TDAs permiten guardar informacin de acuerdo al orden que sta llega, la forma en la cual esta informacin se extrae en distinto orden en una TDA con respecto a la otra.

Estructuras de Datos (Programacin 2)

Pilas y Colas

Qu son?
Son muy eficientes en cuanto a los tiempos de respuesta en la insercin y extraccin de elementos, y ms all de la cantidad de elementos que contengan, pues siempre saben dnde insertar y qu extraer. Mientras se respeten sus caractersticas y funcionalidades, pueden ser implementadas de distintas maneras, sin afectar su uso (cambiar de una implementacin a otra debera ser transparente).

Estructuras de Datos (Programacin 2)

Pilas y Colas

Pilas
Con respecto a la manipulacin de sus elementos responde a la denominacin LIFO: Last In First Out Esto implica que el ltimo elemento en entrar ser el primero en salir.

Estructuras de Datos (Programacin 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 vaca.
Entrada

Salida

Tope

Estructuras de Datos (Programacin 2)

Pilas y Colas

Ejemplos de Pilas
En la vida real utilizamos pilas ms 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 (Programacin 2)

Pilas y Colas

Ejemplos de Pilas
En informtica las pilas se usan muchsimo. Quiz la ms 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. Tambin, en varios lenguajes, se usan pilas para guardar los datos que pasamos como parmetros. Esto se hace en forma automtica y transparente para nosotros, y ayuda a usar la memoria disponible con eficiencia.

Estructuras de Datos (Programacin 2)

Pilas y Colas

Propiedades de una Pila

Estados
Vaca Llena

Acciones
Crear/Inicializar Destruir/Vaciar Agregar (Elemento) Extraer (Elemento) Ver (Elemento) Tope
Estructuras de Datos (Programacin 2) Pilas y Colas

Estados de una Pila

Ambos estados son booleanos (valen verdadero o falso) Pila vaca


Se da siempre que la estructura no contiene elementos.

Pila llena
Se da cuando no hay ms lugar para almacenar elementos.

Estructuras de Datos (Programacin 2)

Pilas y Colas

Acciones sobre una Pila

Agregar elemento
Podemos agregar elementos, apilarlos, siempre que la pila no est llena. Se conoce tambin como Push o, en nuestro idioma, Apilar.

Extraer elemento
Podemos extraer el ltimo elemento insertado, desapilarlo, siempre y cuando la pila no est vaca. Se conoce tambin 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 (Programacin 2) Pilas y Colas

Funcionamiento de una Pila


Al apilar C, ste tapa a B. En tope ahora Volvemos a En tope, encontramos encontrar a ahora, B a C.entope, Tanto BEn Tope. vemos A B, entonces, como a yse queda A ve A. quedan inaccesible. inaccesibles.

C A B C Al desapilar C, el tope de la pila desciende.

Tope (la pila vista desde arriba)

B La pila est Al apilar el vaca. elemento B, Podemos seguir as hasta que ste la pila quede completamente Al apilar elqueda sobre se vaca, A no el ha An elemento o hasta obtener el elemento elemento que deseamos. la pila apilado ningn deja anterior. elemento. de estar vaca.
(hacer click para continuar con la animacin)

Estructuras de Datos (Programacin 2)

Pilas y Colas

Pilas: Conclusiones
Una pila es un TDA dedicado al almacenamiento y manipulacin 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 implementacin 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 lgico de acceso y salida para sus elementos, y slo vemos el ltimo insertado.

Estructuras de Datos (Programacin 2)

Pilas y Colas

Colas
Con respecto a la manipulacin de sus elementos responde a la denominacin FIFO: First In First Out Esto implica que el primer elemento en entrar ser el primero en salir.

Estructuras de Datos (Programacin 2)

Pilas y Colas

Por qu?
Porque fueron pensadas para mantener y manejar elementos respetando siempre y directamente su orden de llegada. Las colas tienen un punto de insercin de elementos y otro para la extraccin de los mismos, y estn en extremos opuestos (cabecerafinal, frentefondo, o primeroltimo).

Por aqu entran los elementos

Por aqu salen

Fondo

Frente

Estructuras de Datos (Programacin 2)

Pilas y Colas

Ejemplos de Colas
Toda aquella organizacin 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 (Programacin 2)

Pilas y Colas

Ejemplos de Colas
En informtica las colas tambin se usan con bastante frecuencia. Uno de los ejemplos puede ser la cola de mensajes del sistema.

Estructuras de Datos (Programacin 2)

Pilas y Colas

Propiedades de una Cola

Estados
Vaca Llena

Acciones
Crear/Inicializar Destruir/Vaciar Agregar (Elemento) Extraer (Elemento) Ver (Elemento) Cabecera
Estructuras de Datos (Programacin 2) Pilas y Colas

Estados de una Cola

Ambos estados son booleanos (valen verdadero o falso) Cola vaca


Se da siempre que la estructura no contiene elementos.

Cola llena
Se da cuando no hay ms lugar para almacenar elementos.

Estructuras de Datos (Programacin 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 ms antiguo, el cual se encuentra al frente, siempre y cuando la cola no est vaca.

Ver cabecera (tambin Ver Frente o Ver primero)


Sin quitarlo, podemos ver el elemento que est prximo a salir (en la cabecera o frente de la cola), que no es otro que el primero.
Estructuras de Datos (Programacin 2) Pilas y Colas

Funcionamiento de una Cola

C A B A

Lo mismo Arrancamos con pasa con C, Ya extraer el un la encolado sin que queda cola Al primer Al tenemosagregar B, vaca, primer elemento deQuedara al detrs elementos. ste queda elemento insertado, B. agregado afrente. A. a que C deber de detrs B pasa al la esperar final, Podemos seguir as hasta cola.desencolen encolado se AyB detrs de C. cola. En la vaciar la cabecera para llegar al frente. Pero, elemento Podemosla no en ver C A B B, A, el primersivemos nuevamente ahora, quedaviniese el A y mientras al lo agregsemos elemento cabecera,elemento A en la a la cola, agregado, sigueC en qu posicin alguno. sigue oculto cabecera (al quedara? frente; B queda oculto tras ste, frente). e inaccesible. e inaccesible. Cabecera (hacer click para continuar con la animacin) (la cola vista desde adelante)
Estructuras de Datos (Programacin 2) Pilas y Colas

Colas: Conclusiones
Una cola es un TDA dedicado al almacenamiento y manipulacin de elementos. Como TDA, su funcionalidad es siempre la misma, independientemente de la implementacin 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 estn diseadas para devolver los elementos ordenados tal como llegan. Para esto, las colas poseen un punto de acceso y otro de salida que lgicamente estn ubicados en extremos opuestos. Siempre vemos el elemento que est primero o al frente.
Estructuras de Datos (Programacin 2) Pilas y Colas

Bsqueda de elementos
Ninguna de estas dos TDAs posee facilidades que posibiliten la bsqueda de elementos contenidos en ellas, pues eso escapa a su funcionalidad: las pilas siempre devuelven el ltimo elemento, y las colas siempre el primero. Cmo se les ocurre que debemos trabajar para encontrar algn elemento contenido en estas estructuras, siempre respetando las reglas LIFO y FIFO, segn corresponda?

Estructuras de Datos (Programacin 2)

Pilas y Colas

Inversin 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 quedarn todos los elementos en posiciones inversas a las de origen.
Podemos comprobarlo?

Estructuras de Datos (Programacin 2)

Pilas y Colas

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 (Programacin 2)

Pilas y Colas

Vous aimerez peut-être aussi