Está en la página 1de 15

Instituto Tecnolgico De Veracruz.

Estructura de Datos.
Ing. Luis Bernardo Ballesteros Barradas.
Tema:
Pilas.
Alumna:
Gonzlez Cern Ana aren.
!. Veracruz" Ver A ## de $arzo %&'(.
Indice.
Introduccin a las Pilas..............................................................................................................................4
Definicin..............................................................................................................................................4
Representacin de Pilas..............................................................................................................................6
Representar Pilas en un Vector..............................................................................................................6
Representacin De Pilas Como Lista Ligada........................................................................................8
Operaciones con Pilas..............................................................................................................................1
Insertar.................................................................................................................................................1
!orrar...................................................................................................................................................11
Las Operaciones "u#iliares $on%.............................................................................................................11
"lgoritmo Para Verificar $i La Pila &sta Vac'a........................................................................................11
"lgoritmo Para Verificar $i La Pila &sta Vac'a....................................................................................11
"lgoritmo Para Verificar $i La Pila &sta Llena...................................................................................1(
"plicaciones de Pilas...............................................................................................................................1)
Las "plicaciones *ue +ienes Las Pilas $on Las $iguientes%..............................................................1)
Llamadas a su,programas%..................................................................................................................1)
+ratamiento de &#presiones aritm-ticas%.............................................................................................1)
Recursi.idad........................................................................................................................................1)
Introduccin.
&n la .ida cotidiana suele ocurrir /ue las tareas se nos acumulan de forma /ue siempre nos dedicamos a
la tarea mas reciente0 de1ando apla2adas las mas antiguas0 es decir0 siguiendo el criterio de 3el ultimo en
entrar es el primero en salir4.
$e considera una estructura de datos lineal cu5a caracter'stica principal es /ue el acceso a los
elementos se reali2a en orden in.erso al de su almacenamiento. "un/ue se las puede denominar
estructuras LI6O0 /ue es el /ue .amos a utili2ar es pilas.
&l comportamiento de las pilas es /ue el acceso a la estructura0 tanto para su modificacin 7insercin 5
,orrado8 como para la consulta de los datos almacenados0 se reali2a en un 9nico punto 7la cima de la
pila80 lo /ue facilita implementaciones sencillas 5 eficientes.
" pesar de su sencille20 se trata de una estructura con m9ltiples aplicaciones en el dise:o de algoritmos0
como la e.aluacin de e#presiones o la implementacin de la recursin.
Introduccin a las Pilas.
Definicin.
;na pila es una lista ordenada en la cual todas las operaciones 7insercin 5 ,orrado8 se efect9an en un solo
e#tremo llamado +OP&. &s una estructura LI6O /ur son las iniciales de la pala,ra en ingles ultimo en entrar
primero en salir de,ido a /ue los datos almacenados en ella se retiran en orden in.erso al /ue fueron entrados.
;n e1emplo de pilas en computadores se presenta en el proceso de llamadas a su,<programas 5 sus retornos.
$upongamos /ue tenemos un programa principal 5 ) su,<programas as'%
Cuando se e1ecuta el programa principal0 se =ace una llamada al su,programa P(0 es decir0 ocurre una
interrupcin a la e1ecucin del programa principal.
"ntes de iniciar la e1ecucin de este su,programa0 se guarda la direccin de la instruccin donde de,e retornar a
continuar la e1ecucin del programa principal cuando termine de e1ecutar el su,programa. Llamemos R esta
direccin.
Cuando e1ecuta el su,programa P1 e#iste una llamada al su,programa P(0 =a5 una nue.a interrupcin0 pero
antes de e1ecutar el su,<programa P( se guarda la direccin de la instruccin donde de,e retornar a continuar la
e1ecucin del su,programa P10 cuando termine de e1ecutar el su,programa P(. Llamemos $ esta direccin.
>asta el momento =a5 guardados dos direcciones de retorno% R0$.
Cuando e1ecuta el su,programa P( =a5 llamada a un su,programa P)0 lo cual implica una nue.a interrupcin 5
por ende guarda una direccin de retorno al su,programa P(0 la cual llamamos +.
+enemos entonces tres direcciones guardadas as'%
R0$0+.
"l terminar la e1ecucin del su,programa P)0 retorna a continuar e1ecutando en la ultima direccin /ue guardo0
es decir0 e#trae la direccin + 5 regresa a continuar e1ecutando el su,programa P( en dic=a instruccin. Los
datos guardados 5a son%
R0 $.
"l terminar el su,programa P(0 e#trae la ultima direccin /ue tiene guardada 5 en este caso $0 5 retorna a esta
direccin a continuar la e1ecucin del su,programa P1.
&n este momento los datos guardados son%
R.
"l terminar la e1ecucin del su,programa P1 retornara la direccin /ue tiene guardada0 osea a R.
O,ser.e /ue los datos fueron procesador en forma in.erso al /ue fueron almacenados0 es decir0 ultimo en entrar
primero en salir. &s esta forma de procesamiento la /ue define una estructura PIL".
Definamos a=ora formalmente la estructura pila%
Crear () --- pila
Apilar (elemento, pila)pila
Desapilar(pila)--- pila
Tope (pila)elemento
Esvanencia (pila)--lgico
)e*resentacin de Pilas.
>emos definido la estructura de pila en a,stracto0 .eremos a=ora como representar una pila en un computador.
;na pila dentro de un computador la podremos representar de dos formas%
&n .ector.
Lista ligada.
Representar Pilas en un ector.
La forma mas simple es utili2ar un arreglo de una dimensin 5 una .aria,le0 /ue llamaremos T!PE0 /ue indi/ue
la posicin del arreglo en la cual se =alla el ultimo elemento de la pila.
La funcin CR&"R seria simplemente definir un .ector 5 una .aria,le0 /ue llamaremos T!PE0 la cual
inicialmente tendr? el .alor de cero.
Dimensin pila (100)
Tope = 0
La funcin &$V"CI" consiste simplemente en preguntar por el .alor de T!PE%
If tope = 0 then
Error
Return (pila(tope))
End (if)
$omo se puede o,ser.ar0 estas funciones son tan sencillas 5 tan cortas /ue no se 1ustifica ela,orar algoritmos
independientes para ellas. &n su defecto se codificaran estas instrucciones0 en el proceso /ue se este efectuando0
cuando sea necesario.
Los algoritmos para apilar 5 des<apilar se presentan en los siguientes su,<programas.
" 5 DAT! son par?metros por .alor 5 T!PE 5 P#$A par?metros por referencia.
P#$A es un .ector con capacidad de n elementos.
T!PE es la .aria,le /ue indica la posicin del .ector en la cual se =alla el ultimo elemento de la pila.
DAT! es la .aria,le /ue lle.a la informacin a guardar en la pila.
Ejemplo:
&n nuestro e1emplo el .ector se llama P#$A0 n es el @ 5 tope es 4.
&l su,programa P#$A%$$E"A in.ocara cuando tope sea @.
Dic=o su,programa sacara un mensa1e apropiado 5 detendr? el proceso.
P#$A, T!PE 5 DAT! son par?metros por .aria,le.
D"+O es la .aria,le /ue retoma la informacin sacada de la pila.
Representacin De Pilas Como $ista $iga&a.
$iempre /ue se de representar un o,1eto como lista ligada lo promero /ue se de,e =acer es definir la
configuracin del registro.
DAT!(')( se refiere al campo dato en el registro #.
$#)A(')( se refiere al campo liga del registro #0 es el campo /ue apunta =acia otro registro.
Representemos como lista ligada la siguiente pila%
Di,u1emosla de la forma como es com9n =acerlo con las listas ligadas.
$e o,ser.a /ue es mas f?cil 5 mas eficiente /ue mane1ando la pila en .ectores0 5a /ue en listas ligadas no =a5
necesidad de controlar pila llena antes de apilar.
Desapilar* consiste en ,orrar el primer registro de una lista ligada. Para des<apilar es necesario sa,er si la pila
esta o no .aci?. $i esta .aci? no se podr? des<apilar.
La pila esta .aci? cuando la lista sea .aci?0 es decir0 cuando topeA.
+*eraciones con Pilas.
;na pila cuenta con ( operaciones imprescindi,les% apilar 5 des<apilar0 a las /ue en las implementaciones
modernas de las pilas se suelen a:adir m?s de uso =a,itual.
Crear* se crea la pila .ac'a
Apilar* se a:ade un elemento a la pila 7pus=8
Desapilar* se elimina el elemento frontal de la pila 7pop8
Cima* de.uel.e el elemento /ue esta en la cima de la pila 7top o peeB8
ac+a* de.uel.e cierto si la pila est? .ac'a o falso en caso contrario
#nsertar.
&n primer lugar =a5 /ue decir /ue esta operacin es mu5 com9nmente denominada push.
La insercin en una pila se reali2a en su cima0 considerando la cima como el 9ltimo elemento insertado. &sta es
una de las particularidades de las pilas0 mientras el resto de estructuras de datos lineales se representan
gr?ficamente en =ori2ontal0 las pilas se representan .erticalmente. Por esta ra2n es por lo /ue se =a,la de cima
de la pila 5 no de cola de la cima. "un/ue en el fondo sea lo mismo0 el 9ltimo elemento de la estructura de datos.
Las operaciones a reali2ar para reali2ar la insercin en la pila son mu5 simples0 =acer /ue el nue.o nodo apunte a
la cima anterior0 5 definir el nue.o nodo como cima de la pila.
Vamos a .er un e1emplo de una insercin%
,orrar.
&sta operacin es normalmente conocida como pop.
Cuando se elimina un elemento de la pila0 el elemento /ue se ,orra es el elemento situado en la cima de la pila0
el /ue menos tiempo lle.a en la estructura.
Las operaciones a reali2ar son mu5 simples0 a.an2ar el puntero /ue apunta a la cima 5 e#traer la cima anterior.
$i aplicamos la operacin pop a la pila de 4 elementos representada arri,a el resultado ser'a%
$as !peraciones Au'iliares -on*
Cuando esta llena.
Cuando esta .aci?.
Considerando /ue se tiene una pila con capacidad para almacenar un n9mero m?#imo de elementos <C"D<0 5
/ue el 9ltimo de ellos se indica con +OP&0 a continuacin se presentan los algoritmos correspondientes a las
operaciones mencionadas. $i la pila est? .ac'a0 entonces +OP& es igual a O.
Algoritmo Para erificar -i $a Pila Esta ac+a.
$i 7+OP& A 8 entonces
>acer !"ED A V&RD"D&RO
$i no
>acer !"ED A 6"L$O
6in si
Algoritmo Para erificar -i $a Pila Esta $lena.
$i 7+OP&A8 entonces
>acer !"ED A V&RD"D&RO
$i no
>acer !"ED A 6"L$O
6in si
A*licaciones de Pilas.
$as Aplicaciones .ue Tienes $as Pilas -on $as -iguientes*
Llamadas a su,programas
Recursi.idad
+ratamiento de &#presiones "ritm-ticas
Ordenacin
Por el momento nos enfocaremos en dos aplicaciones /ue son%
$lama&as a su/programas*
Cuando se tiene un programa /ue llama a un su,programa0 tam,i-n conocido como mdulo o funcin0
internamente se usan pilas para guardar el estado de las .aria,les del programa0 as' como las
instrucciones pendientes de e1ecucin en el momento /ue =ace la llamada. Cuando termina la e1ecucin
del su,programa0 los .alores almacenados en la pila se recuperan para continuar con la e1ecucin del
programa en el punto en el cual fue interrumpido. "dem?s de las .aria,les se recupera la direccin del
programa la /ue se =i2o la llamada0 por/ue a esa posicin se regresa el control del proceso.
Tratamiento &e E'presiones aritm0ticas*
A1, ( #nfi2a
A,1(posfi2a
1A,(Prefi2a
AF,(#nfi2a*&sta notacin es Infi1a por/ue el operador se encuentra entre los operadores.
A,FAposfi2a*&sta notacin es Posfi1a por/ue el operador se encuentra despu-s de los operadores.
FA,(Prefi2a* &sta es una notacin Prefi1a por/ue el operador se encuentra antes de los operadores
Recursivi&a&.
$e lee la e#presin elemento a elemento.
$i es un operando se mete en una pila
$i es un operador0 se e#traen los dos 9ltimos elementos introducidos en la pila0 se aplica el operador so,re ellos 5
el resultado se guarda en la pila.
Conclusin.
;na pila es lo contrario de una cola0 5a /ue su acceso es de tipo LI6O0 el 9ltimo /ue entra es el primero /ue sale0
imaginar un montn de li,ros unos encima de otros 5 /ue para acceder al segundo por arri,a primero es
necesario coger el primero0 su utili2acin principal es para el softGare de sistemas0 compiladores0 interpretes.
Las dos operaciones ,?sicas0 son las de almacenamiento 5 la de recuperacin0 /ue se llaman pus= 7la de
almacenamiento 8 5 pop 7la de recuperacin80 para implementar una pila se necesitan las dos operaciones
mencionadas con anterioridad 5 una 2ona de memoria para utili2arla como pila0 se puede utili2ar un arra50 o una
2ona asignada mediante asignacin din?mica de memoria. "l igual /ue en las colas0 la funcin de recuperacin
elimina el .alor de la lista0 5 si este no se almacena en alg9n lugar0 este se destru5e.
Fuente.
,tt*:--.oo/s.google.com.m0-.oo/s1id2g$cm.3
45+D6C7*g2PA'(87d42*ilas9estructura9de9datos7,l2es3(':7sa2;7ei2<8/=63
./La=!%>;u*o!?Bg7@ed2&CA/>BAE?B?C@2one*age742*ilasD%&estructuraD%&de
D%&datos7E2Ealse
=ttp%HH,ooBs.google.com.m#H,ooBsIidAdJ6f4#1KeooCLpgAP"MN(Ld/ApilasFestructuraFdeFdatosL=lAes<
41@LsaADLeiAM)B1;<,BLa1>(*Dupo>G!gL.edAC64*6"&GC"O.AonepageL/ApilasP(estructuraP(de
P(datosLfAfalse
=ttp%HHfc/i.ti1.ua,c.m#HusuariosHpalaciosH;nidadP(IIIP(PilasP(5P(Colas.pdf
=ttp%HHtesciedd.,logspot.m#H(11H1Hunidad<(<operaciones<con<pilas.=tml

También podría gustarte