Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CATEDRATICO:
ESTRUCTURA DE DATOS
Ing. Carlos Roberto mejia
GRUPO V01
PROYECTO:
PILAS Y COLAS
CARN
AV100311
CM102911
CP
HC100410
NDICE
INTRODUCCIN.......................................................................................................3
OBJETIVOS...............................................................................................................4
Objetivo general.................................................................................................4
Objetivos especficos.......................................................................................4
PILAS INFORMATICAS.............................................................................................5
Qu es una pila?..................................................................................................5
Tcnicas de Pilas...................................................................................................6
Aplicacin de Pilas.................................................................................................9
COLAS EN INFORMATICA.....................................................................................11
Qu es una COLA?............................................................................................11
Tcnica de Colas.................................................................................................12
Aplicacin de Colas..............................................................................................14
PILAS Y COLAS......................................................................................................15
ANEXOS..................................................................................................................16
INTRODUCCIN
En mundo de la informtica es una de las reas ms extensas y completas, debido
a la necesidad del ser humano en aplicarlas en la vida cotidiana, en la actualidad
las computadoras, el software es decir la tecnologa es tan importante para
desarrollar tantas actividades de la vida desde un sencillo juego a complejos
sistemas capaces de darle vida a empresas mundiales.
En el presente trabajo nos enfatizamos en dos trminos muy importantes en el
mundo informtico tales como las pilas y las colas.
Se pueden dividir a los programas en dos partes fundamentales que son:
Algoritmos
Estructuras de datos
El almacenamiento de datos
La recuperacin de datos
OBJETIVOS
Objetivo general
Investigar, conocer y comparar las herramientas de estructura de datos en
PILAS y COLAS.
Objetivos especficos
PILAS INFORMATICAS
Qu es una pila?
Una pila es una estructura de datos a la cual se
puede acceder solo por un extremo de la
misma. Es decir es una lista ordenada
o estructura de datos en la que el modo de
acceso a sus elementos es de tipo LIFO (del
ingls Last In First Out, ltimo en entrar, primero
en salir) que permite almacenar y recuperar
datos. Esta estructura se aplica en multitud de ocasiones en el rea
de informtica debido a su simplicidad y ordenacin implcita de la propia
estructura. A una pila, se le conoce como una estructura de datos: ltima en
entrar, primera en salir (UEPS)
As mismo, en cada momento que el usuario se encuentre en la parte interna del
equipo pues solo se tiene al ltimo objeto apilado de lo cual es denominado TOS
que viene a significar Top of Strack de tal manera que el termino retirar tiene
como objetivo retirar la obtencin de este elemento ya que es retirado de la pila
informtica en lo cual permitir el acceso al siguiente que pasa a ser el nuevo
TOS.
Una metfora que se utiliza con frecuencia es la idea de una pila de platos en una
cafetera con muelle de pila. En esa serie, slo la primera placa es visible y
accesible para el usuario, todas las dems placas permanecen ocultas. Como se
aaden las nuevas placas, cada nueva placa se convierte en la parte superior de
la pila, escondidos debajo de cada plato, empujando a la pila de placas. A medida
que la placa superior se elimina de la pila, la segunda placa se convierte en la
parte superior de la pila. Dos principios importantes son ilustrados por esta
metfora: En primer lugar la ltima salida es un principio, la segunda es que el
contenido de la pila est oculto. Slo la placa de la parte superior es visible, por lo
que para ver lo que hay en la tercera placa, el primer y segundo platos tendrn
que ser retirados.
Las pilas son frecuentemente utilizadas en el desarrollo de sistemas informticos y
software en general. Por ejemplo, el sistema de soporte en tiempo de compilacin
y ejecucin del Pascal utiliza una pila para llevar la cuenta de los parmetros de
procedimientos y funciones, variables locales, globales y dinmicas. Este tipo de
estructuras tambin son utilizadas para traducir expresiones aritmticas o cuando
se quiere recordar una secuencia de acciones u objetos en el orden inverso del
ocurrido.
5
Tcnicas de Pilas
Las pilas no son estructuras fundamentales de datos; es decir no estn definidas
como tales en los lenguajes de programacin. Para su representacin requieren
de otras EDs, como:
Arreglos: Un arreglo es un conjunto de datos o una estructura de datos
homogneos que se encuentran ubicados en forma consecutiva en la memoria
RAM (sirve para almacenar datos en forma temporal).
Listas: es una de las estructuras de datos fundamentales, y puede ser usada para
implementar otras estructuras de datos.
Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en
las implementaciones modernas de las pilas se suelen aadir ms de uso habitual.
Vaca: devuelve cierto si la pila est sin elementos o falso en caso de que contenga
uno.
Por ejemplo, una pila puede comenzar en una posicin de la memoria de mil, y
ampliar por debajo de las direcciones, en cuyo caso, los nuevos datos se
almacenan en lugares que van por debajo de 1000, y el puntero de pila se
decremento cada vez que un nuevo elemento se agrega. Cuando un tema es
eliminado de la pila, el puntero de pila se incrementa.
Los punteros de pila pueden apuntar al origen de una pila o de un nmero limitado
de direcciones, ya sea por encima o por debajo del origen (dependiendo de la
direccin en que crece la pila), sin embargo el puntero de pila no puede cruzar el
origen de la pila. En otras palabras, si el origen de la pila est en la direccin 1000
y la pila crece hacia abajo (hacia las direcciones 999, 998, y as sucesivamente),
el puntero de pila nunca debe ser incrementado ms all de 1000 (para 1001,
1002, etc.) Si un desapilar operacin en la pila hace que el puntero de pila se deje
atrs el origen de la pila, una pila se produce desbordamiento. Si una operacin de
apilar hace que el puntero de pila incremente o decremento ms all del mximo
de la pila, en una pila se produce desbordamiento.
La pila es visualizada ya sea creciente de abajo hacia arriba (como pilas del
mundo real), o, con el mximo elemento de la pila en una posicin fija, o creciente,
de izquierda a derecha, por lo que el mximo elemento se convierte en el mximo
a "la derecha". Esta visualizacin puede ser independiente de la estructura real de
la pila en la memoria. Esto significa que rotar a la derecha es mover el primer
elemento a la tercera posicin, la segunda a la primera y la tercera a la segunda.
Aqu hay dos equivalentes visualizaciones de este proceso:
Inicio
Si p = 0
Finsi
V = VACIA
Fin
procedimiento METER
Inicio
Si P = LONGMAX
entonces
Sino
P=P+1
S(P) = X
Finsi
Fin
Procedimiento SACAR
Inicio
Entonces
Sino
X = S(P)
P=P1
Finsi
Fin
Aplicacin de Pilas
Una pila es normalmente representada en los ordenadores por un bloque de
celdas de memoria, con los "de abajo" en una ubicacin fija, y el puntero de pila de
la direccin actual de la "cima" de clulas de la pila.
Apilando un elemento en la pila, se ajusta el puntero de pila por el tamao de
elementos (ya sea decremento o incrementar, en funcin de la direccin en que
crece la pila en la memoria), que apunta a la prxima celda, y copia el nuevo
elemento de la cima en rea de la pila.
Dependiendo de nuevo sobre la aplicacin exacta, al final de una operacin de
apilar, el puntero de pila puede sealar a la siguiente ubicacin no utilizada en la
pila, o tal vez apunte al mximo elemento de la pila.
Si la pila apunta al mximo elemento de la pila, el puntero de pila se actualizar
antes de que un nuevo elemento se apile, si el puntero que apunta a la prxima
ubicacin disponible en la pila, que se actualizar despus de que el mximo
elemento se apile en la pila.
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.
Las pilas son estructuras muy usadas en la solucin de diversos tipos de
problemas, en el rea de computacin. Algunos de los casos ms representativos
de aplicacin de las mismas son:
10
Llamadas a subprogramas
Recursividad
Un problema que pueda ser definido en funcin de su tamao, sea este N, pueda
ser dividido en instancias ms pequeas (< N) del mismo problema y se conozca
la solucin explcita a las instancias ms simples, lo que se conoce como casos
base, se puede aplicar induccin sobre las llamadas ms pequeas y suponer que
estas quedan resueltas.
1.
AB
= Infija
2. AB = posfija
3. AB = Prefija
AB = Infija: Esta notacin es Infija porque el
operador se encuentra entre los operadores.
AB = posfija: Esta notacin es Posfija
Ordenacin
11
COLAS EN INFORMATICA
Qu es una COLA?
Una cola es una estructura en donde los elementos son insertados en el inicio
(front) de la misma, y retirados al final de la misma, debido a ello el comportamiento
de una cola se conoce como FIFO ( primero en entrar, primero en salir ).
Las colas se utilizan en sistemas informticos, transportes y operaciones de investigacin
(entre otros), dnde los objetos, personas o eventos son tomados como datos que se
almacenan y se guardan mediante colas para su posterior procesamiento. Este tipo de
estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante
clases, en forma de listas enlazadas.
12
Tcnica de Colas
El uso de las colas es variado entre algunos tipos tenemos:
Colas circulares (anillos): en las que el ltimo elemento y el primero estn unidos.
Colas de prioridad: En ellas, los elementos se
atienden en el orden indicado por una prioridad
asociada a cada uno. Si varios elementos tienen la
misma prioridad, se atendern de modo convencional
segn la posicin que ocupen. Hay 2 formas de
implementacin: Aadir un campo a cada nodo con su
prioridad. Resulta conveniente mantener la cola
ordenada por orden de prioridad.
Crear
tantas
colas
como
prioridades
haya,
Bicolas de entrada restringida: Son aquellas donde la insercin slo se hace por
el final, aunque podemos eliminar al inicio o al final.
Bicolas de salida restringida: Son aquellas donde slo se elimina por el final,
aunque se puede insertar al inicio y al final.
13
1.
2.
3.
4.
5.
14
Aplicacin de Colas
Las Colas tambin se utilizan en muchas maneras en los sistemas operativos para
planificar el uso de los distintos recursos de la computadora. Uno de estos recursos es la
propia CPU (Unidad Central de Procesamiento).
15
SSOO
Implementacin de recursividad.
Aplicaciones indirectas:
16
PILAS Y COLAS.
La diferencia radica en cuales son los elementos que salen primero.
Pilas (primeras en entrar, ltimas en salir): son como una pila de libros, los
primeros que entran a la pila son los ltimas que salen porque quedan debajo de
los ltimos.
Colas (Primeras entrar, primeras en salir): Son como la cola para comprar un
boleto del cine, los primeros en entrar ala cola son los primeros que salen de ella.
Otra diferencia es que en las pilas los tems se aaden y se eliminan en el mismo
extremo.
Se entiende por cola una estructura de datos en la que se aaden nuevos tems
en un extremo y se suprimen intems viejos en el opuesto.
A diferencia de las colas, en las pilas los tems se aaden y se eliminan en el
mismo .
Las pilas y las colas son estructuras de datos
17
homogneas.
ANEXOS.
18
19