1. Outline
Pilas y Colas
Pilas
Colas
Pilas y Colas
Roberto Carlos Abreu D´
ıaz
January 22, 2010
Roberto Carlos Abreu D´
ıaz Pilas y Colas
2. Outline
Pilas y Colas
Pilas
Colas
1 Pilas y Colas
2 Pilas
C´digo
o
3 Colas
C´digo
o
Roberto Carlos Abreu D´
ıaz Pilas y Colas
3. Outline
Pilas y Colas
Pilas
Colas
Pilas y Colas
Los arreglos son apropiados para aplicaciones de bases de
datos: facilitan la manipulaci´n de la data
o
Operaciones para insertar, eliminar, modificar y buscar
elementos son relativamente f´cil de implementar
a
Las pilas y colas, en contraste, tienen un tiempo de vida m´s
a
corto; esto es, se crean para llevar a cabo una tarea y al
momento de que esta se realiza se descartan
A diferencia de los arreglos, s´lo se puede acceder o al ultimo
o ´
elemento o al primero en cualquier tiempo: tienen acceso
restringido.
Roberto Carlos Abreu D´
ıaz Pilas y Colas
4. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
Pilas
Es una estructura de tipo LIFO (Last-In, First-Out)
´
O UEPS: Ultimo en Entrar, Primero en Salir :-)
Es caracterizada por dos operaciones fundamentales: push (o
apilar ) y pop (o desapilar )
Es una herramienta util para algoritmos aplicados a ciertas
´
estructuras de datos complejas
Ayuda a recorrer un ´rbol binario y a buscar v´rtices de grafos
a e
Los microprocesadores usan pilas: cuando una funci´n se
o
llama, su direcci´n de retorno y argumentos se apilan en una
o
pila y, cuando retorna, se desapilan.
Roberto Carlos Abreu D´
ıaz Pilas y Colas
5. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
Apilar
C´digo
o
// t o p c o n t r o l a c u ´ l e l e m e n t o
a
// e s e l u l t i m o a g r e g a d o
´
p u b l i c v o i d a p i l a r ( i n t elem ) {
i f ( t o p == s t a c k A r r a y . l e n g t h )
return ;
s t a c k A r r a y [++t o p ] = elem ;
}
Roberto Carlos Abreu D´
ıaz Pilas y Colas
6. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
Desapilar
C´digo
o
public int d e s a p i l a r () {
i f ( top > 0)
r e t u r n s t a c k A r r a y [ top −−];
r e t u r n −1;
}
Roberto Carlos Abreu D´
ıaz Pilas y Colas
7. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
Eficiencia
Los elementos pueden ser apilados y desapilados en tiempo
constante O(1). En otras palabras, el tiempo no depende de
cu´ntos elementos est´n en la pila.
a e
Roberto Carlos Abreu D´
ıaz Pilas y Colas
8. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
Colas
Colas
La cola (o en ingl´s, ’queue’) es una colecci´n en la cual los
e o
elementos se mantienen por el orden de llegada. Las operaciones
principales son adicionar, donde el elemento a a˜adir se almacena
n
al final de la cola; y eliminar, donde el elemento a eliminar se toma
del principio de la cola.
Roberto Carlos Abreu D´
ıaz Pilas y Colas
9. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
¿C´mo se ve una cola en el mundo real?
o
Roberto Carlos Abreu D´
ıaz Pilas y Colas
10. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
Insertar
C´digo
o
// Se a n ade a l f i n a l
˜
p u b l i c v o i d i n s e r t a r ( i n t elem )
{
i f ( e l F i n a l == q u e A r r a y . l e n g t h − 1 )
{
e l F i n a l = −1;
}
q u e A r r a y [++ e l F i n a l ] = elem ;
numElems++;
}
Roberto Carlos Abreu D´
ıaz Pilas y Colas
11. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
Eliminar
C´digo
o
// e l i m i n a a l que e s t ´a
// en e l f r e n t e
public int eliminar ()
{
i n t temp = q u e A r r a y [ f r e n t e ++];
i f ( f r e n t e == q u e A r r a y . l e n g t h )
{
frente = 0;
}
numElems−−;
r e t u r n temp ;
}
Roberto Carlos Abreu D´
ıaz Pilas y Colas
12. Outline
Pilas y Colas
C´digo
o
Pilas
Colas
Ejercicios pr´cticos en clase
a
Para hacer
Clase Pila
Clase Cola
Emparejamiento de delimitadores
Roberto Carlos Abreu D´
ıaz Pilas y Colas