Vous êtes sur la page 1sur 17

Pilas y Colas

Estructuras de Datos
Pilas
Son estructuras utilizadas muy a menudo
como herramientas de programacin de tipo
LIFO (Last in-First out)
Permiten el acceso solo a un elemento a la
vez: el ltimo elemento insertado
La mayora de los procesadores utilizan una
arquitectura basada en pilas
Pilas - Operaciones
Bsicamente poseen dos operaciones
primarias:
Push: inserta la data en el tope de la pila
Pop: remueve la data del tope de la pila
Pilas de libros
Pilas de libros
Constructores:
Push (Insertar al inicio)
Pop (Eliminar al inicio)
Selectores:
Pila-Vacia? (El apuntado Cabeza es Nul?)
Top (Mostrar el primero)
Pilas
Implementadas en listas
Pilas
Implementadas en listas
public class CPilaL extends CListaSimple{
public CPilaL(){super();}
public void Push( Cnodo nuevo ){
InsertaPrimero(nuevo);}
public Cnodo Pop(){
Cnodo nodo;
nodo = EliminarPrimero();
return nodo;}

public int Peek(){
Cnodo nodo;
int dato;
nodo = getCabeza();
dato = nodo.getIData();
return dato;}
public boolean PilaVacia(){
return ( EstaVacia() );}
public void ImprimePila(){
ImprimeLista();}
}


PilaVacia( S )
If top( S ) = 0
return true
Else
return false
Push( S, x )
Top( S ) < Top( S ) + 1
S[ top( S ) ] < x
Pop( S )
If PilaVacia
error
else
Top( S ) < Top( S ) - 1
return S[ Top( S ) + 1 ]
Pilas
Implementadas en
Vectores - Algoritmos
Pilas - Eficiencia
El tiempo de ejecucin de las operaciones
primarias de una pila no depende del
tamao de la pila
Push y Pop se realizan en tiempo constante
O(1) - no es necesario hacer ninguna
comparacin
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 programacin
como las pilas
Colas - Operaciones
Operaciones primarias:
Encolar: agrega un nuevo dato al final de la
cola
Desencolar: elimina un dato del principio de la
cola
Colas - Operaciones
Colas - Operaciones
Constructores:
Encolar (Insertar al final)
Desencolar (Eliminar al inicio)
Selectores:
Cola-Vacia? (El apuntado Cabeza es Nil?)
Primero-Cola (Mostrar el primero)
Colas
Implementadas en listas
Encolar( Q, x )
Q[ Fin( Q ) ] < x
if Fin( Q ) = length( Q )
Fin( Q ) < 1
else
Fin( Q ) < Fin( Q ) + 1
Desencolar( Q )
x < Q[ Cabeza( Q ) ]
if Cabeza( Q ) = Length( Q )
Cabeza( Q ) < 1
else
Cabeza( Q ) < Cabeza( Q ) + 1
return x
Colas
Implementadas en
Vectores - Algoritmos
Colas - Eficiencia
El tiempo de ejecucin de las operaciones
primarias de una colas no depende del
tamao de la cola
Encolar y Desencolar se realizan en tiempo
constante O(1) - no es necesario hacer
ninguna comparacin

La mejor implementacin de cola, es con una lista,
donde se tenga un apuntador a la cabeza y uno al
ltimo de la lista.
Cola doble enlace
Null
Null

Vous aimerez peut-être aussi