Vous êtes sur la page 1sur 9

FUNDACION UNIVERSITARIA D ESAN GIL- UNISANGIL

Consulta pilas y colas


Uso de pilas y colas
William Ferney Chaparro 05/06/2013

Por medio de esta consulta se pretende conoce ms afondo los trminos de pilas y colas, sus diferentes usos cotidianos y su manejo.

INFORME DE CONSULTAS
QUE ES UNA PILA?
Es una estructura de datos lineal donde los elementos pueden ser aadidos o removidos solo por un extremo. Trabajan con filosofa LIFO (Last In- First Out). Al utilizar arreglos para implementar pilas se tiene la limitacin de que se debe reservar el espacio en memoria con anticipacin. Una vez dado un mximo de capacidad a la pila no es posible insertar un nmero de elementos mayor que el mximo establecido. Si esto ocurre, en otras palabras si la pila est llena y se intenta insertar un nuevo elemento, se producir un error conocido como desbordamiento overflow. Una posible solucin a este tipo de inconvenientes consiste en definir pilas de gran tamao, pero esto resultar ineficiente y costoso si solo se utilizarn algunos elementos. No siempre es viable saber con exactitud el nmero de elementos a tratar, y siempre existe la posibilidad de que ocurra un error de desbordamiento.

Ejemplos:
Pila de platos. Pila de discos. Pila de llamadas a funciones. Pila de recursin. Pila de resultados parciales de frmulas aritmticas, etc.

OPERACIONES BASICAS CON PILAS


PUSH (insertar): Agrega unos elementos a la pila en el extremo llamado tope. POP (remover): Remueve el elemento de la pila que se encuentra en el extremo llamado tope. VACIA: Indica si la pila contiene o no contiene elementos. LLENA: Indica si es posible o no agregar nuevos elementos a la pila.

COMO SE VEN LAS PILAS


Usando arreglos: Define un arreglo de una dimensin (vector) donde se almacenan los elementos.

TOPE: Apunta hacia el elemento que se encuentra en el extremo de la pila. (Inicialmente es -1).

APLICACIONES DE LAS PILAS


EXPRESIONES ARITMETICAS:
Una expresin aritmtica contiene constantes, variables y operaciones con distintos niveles de precedencia.

OPERACIONES:

^ potencia */ multiplicacin, divisin +,- suma, resta

NOTACIONES
NOTACION INFIJA:
Los operadores aparecen en medio de los operandos. A + B, A 1, E/F, A * C, A ^ B , A + B + C, A+B-C

NOTACION PREFIJA:
El operador aparece antes de los operandos. + AB, - A1, /EF, *AC, ^AB, +AB+C, +AB-C

NOTACION POSTFIJA:

El operador aparece al final de los operandos. AB+, A1-, EF/, AC*, AB^, AB+C+, AB+C-

Funciones Recursivas
Las pilas pueden ser usadas para implementar la recursin en programas. Una funcin o procedimiento recursivo es aquel que se llama a si mismo. Ejemplos: Factorial, Nmeros de Fibonacci, Torres de Hanoi Algoritmos de Ordenamiento de datos, entre otros.

Control de secuencia de programas


Las pilas son requeridas para implementar el control de flujo de ejecucin de un programa con subprogramas (funciones, procedimientos o mtodos). Subprogramas recursivos o no recursivos donde existen llamadas a ejecucin de subprogramas.Un subprograma se ejecuta completamente antes de retornar al punto donde fue llamado.

QUE ES UNA COLA?


Es una lista lineal de elementos en la que las operaciones de insertar y eliminar se realizan en diferentes extremos de la cola. Trabajan con filosofa FIFO (First In - First out), el primer elemento en entrar es el primer elemento en salir. Ejemplos:

Cola de automviles esperando servicio en una gasolinera Cola de clientes en una ventanilla del banco para pagar un servicio Cola de programas en espera de ser ejecutados por una computadora. Impresin entre otras.

TIPOS DE COLAS
Cola simple: Estructura lineal donde los elementos
orden en que llegan. salen en el mismo

Cola circular: Representacin lgica de una cola simple en un arreglo. Cola Cola
de Prioridades: Estructura lineal en la cual los elementos se insertan en cualquier posicin de la cola y se remueven solamente por el frente. Doble (Bicola): Estructura lineal en la que los elementos se pueden aadir o quitar por cualquier extremo de la cola (cola bidireccional).

OPERACIONES BASICAS CON COLAS


Insertar:
Almacena al final de la cola el elemento que se recibe como paramtro.

Eliminar: Saca de la cola el elemento que se encuentra al frente. Vaca: Llena:


Regresa un valor booleano indicando si la cola tiene o no elementos (true si la cola esta vacia, false si la cola tiene al menos un elemento). Regresa un valor booleano indicando si la cola tiene espacio disponible para insertar nuevos elementos ( true si esta llena y false si existen espacios disponibles).

OPERACIONES

Las colas pueden ser representadas en arreglos de una dimensin (vector) manteniendo dos variables que indiquen el FRENTE y FINAL de los elementos de la cola.

0 A S

1 F

2 S

3 D

4 Z F

Frente Reglas:

Final

Cuando la cola est vaca las variables frente y final son nulos y no es
posible remover elementos. Cuando la cola est llena (frente = 0 y final = n-1) no es posible insertar elementos nuevos a la cola. Cuando se remueven elementos el frente puede incrementarse para apuntar al siguiente elemento de la cola (implementacin con frente mvil) o los elementos en la cola pueden desplazarse una posicin adelante (implementacin con frente fijo) Recuperacin de espacio: Cuando no hay espacios libres al final del arreglo los elementos pueden ser desplazados para desocupar

posiciones en un extremo del arreglo o se puede manejar una estructura circular.

Doble cola
Una doble cola o bicola es una generalizacin de una ED tipo cola. En una doble cola, los elementos se pueden insertar o eliminar por cualquiera de los dos extremos. Es decir, se pueden insertar y eliminar valores tanto por FRENTE como por el FINAL de la cola.

Variantes
Doble cola (DC) con entrada restringida
La primera permite hacer eliminaciones por cualquiera de los dos extremos, mientras que las inserciones slo por el FINAL de la cola.

DC con salida restringida


La segunda variante permite que las inserciones se realicen por cualquiera de los 2 extremos, mientras que las eliminaciones slo por FRENTE de la cola.

Conclusiones
Finalmente podemos concluir que las pilas son necesarias en este tipo de aplicaciones por lo siguiente; Permiten guardar la direccin del programa, o subprograma, desde donde se hizo la llamada a otros subprogramas, para regresar posteriormente y seguir ejecutndolo a partir de la instruccin inmediata a la llamada. Permiten guardar el estado de las variables en el momento en que se hace la llamada, para seguir ocupndolas al regresar del subprograma. Y las colas; Es simplemente una lnea de espera que crece agregando elementos por el final y decrece tomando elementos del frente. Permite utilizar el espacio ms eficientemente que con arreglos normales.

Vous aimerez peut-être aussi