2. Pilas
• Son estructuras utilizadas muy a menudo como
herramientas de programación de tipo LIFO (Last
in-First out)
• Permiten el acceso solo a un elemento a la vez: el
último elemento insertado
• La mayoría de los procesadores utilizan una
arquitectura basada en pilas
3. Las operaciones definidas para
una pila son las siguientes
• push: inserta un objeto en el tope de la pila
• empty: retorna un valor que indica si la pila está vacía o no.
• pop: remueve el objeto que está en el tope de la pila. No está
definido si la pila está vacía.
• top: retorna el objeto que está en el tope de la pila sin borrarlo.
No está definido si la pila está vacía.
6. Pilas
Implementadas en listas
Constructores:
Push (Insertar al inicio)
Pop (Eliminar al inicio)
Selectores:
Pila-Vacia? (El apuntado Cabeza es Nul?)
Top (Mostrar el primero)
7. Pilas
Implementadas en listas
public int Peek(){
public class CPilaL extends
Cnodo nodo;
CListaSimple{
int dato;
public CPilaL(){super();}
nodo = getCabeza();
public void Push( Cnodo nuevo ){
dato = nodo.getIData();
InsertaPrimero(nuevo);}
return dato;}
public Cnodo Pop(){
public boolean PilaVacia(){
Cnodo nodo;
return ( EstaVacia() );}
nodo = EliminarPrimero();
public void ImprimePila(){
return nodo;}
ImprimeLista();}
}
8. Pilas
Implementadas en
Vectores - Algoritmos
PilaVacia( S ) Push( S, x ) Pop( S )
If top( S ) = 0 Top( S ) <– Top( S ) + 1 If PilaVacia
return true S[ top( S ) ] <– x error
Else else
return false Top( S ) <– Top( S ) - 1
return S[ Top( S ) + 1 ]
9. Pilas - Eficiencia
• El tiempo de ejecución de las operaciones
primarias de una pila no depende del
tamaño de la pila
• Push y Pop se realizan en tiempo constante
O(1) - no es necesario hacer ninguna
comparación
10. Colas
• Son estructuras de datos de tipo FIFO (First
in-First out)
• Simulan una cola de personas en el cine
• Las colas son herramientas de programación
como las pilas
11. Las operaciones definidas para
una cola son las siguientes
– Encolar: agrega un nuevo dato al final de la
cola
– Desencolar: elimina un dato del principio de la
cola
14. Colas
Implementadas en listas
Constructores:
Encolar (Insertar al final)
Desencolar (Eliminar al inicio)
Selectores:
Cola-Vacia? (El apuntado Cabeza es Nil?)
Primero-Cola (Mostrar el primero)
15. Colas
Implementadas en
Vectores - Algoritmos
Desencolar( Q )
Encolar( Q, x ) x <– Q[ Cabeza( Q ) ]
Q[ Fin( Q ) ] <– x if Cabeza( Q ) = Length( Q )
if Fin( Q ) = length( Q ) Cabeza( Q ) <– 1
Fin( Q ) <– 1 else
else Cabeza( Q ) <– Cabeza( Q ) + 1
Fin( Q ) <– Fin( Q ) + 1 return x
16. Colas - Eficiencia
• El tiempo de ejecución de las operaciones
primarias de una colas no depende del
tamaño de la cola
• Encolar y Desencolar se realizan en tiempo
constante O(1) - no es necesario hacer
ninguna comparación
17. Cola doble enlace
La mejor implementación de cola, es con una
lista, donde se tenga un apuntador a la cabeza y
uno al último de la lista.
Null
Null