17
Pilas y Colas Pilas y Colas Estructuras de Datos

Pilas y Colas

  • Upload
    kirra

  • View
    72

  • Download
    3

Embed Size (px)

DESCRIPTION

Pilas y Colas. Estructuras de Datos. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Pilas y Colas

Pilas y ColasPilas y ColasEstructuras de Datos

Page 2: Pilas y Colas

PilasPilas

• 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

Page 3: Pilas y Colas

Pilas - OperacionesPilas - Operaciones• Básicamente poseen dos operaciones

primarias:– Push: inserta la data en el tope de la pila– Pop: remueve la data del tope de la pila

Page 4: Pilas y Colas

Pilas de librosPilas de libros

Page 5: Pilas y Colas

Pilas de librosPilas de libros

Page 6: Pilas y Colas

Constructores:

Push (Insertar al inicio)

Pop (Eliminar al inicio)

Selectores:

Pila-Vacia? (El apuntado Cabeza es Nul?)

Top (Mostrar el primero)

Pilas Pilas Implementadas en listasImplementadas en listas

Page 7: Pilas y Colas

Pilas Pilas Implementadas en listasImplementadas 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();}

}

Page 8: Pilas y Colas

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 Pilas Implementadas en Implementadas en

Vectores - Vectores - AlgoritmosAlgoritmos

Page 9: Pilas y Colas

Pilas - EficienciaPilas - 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

Page 10: Pilas y Colas

ColasColas

• 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

Page 11: Pilas y Colas

Colas - OperacionesColas - Operaciones

• Operaciones primarias:– Encolar: agrega un nuevo dato al final de la

cola– Desencolar: elimina un dato del principio de la

cola

Page 12: Pilas y Colas

Colas - OperacionesColas - Operaciones

Page 13: Pilas y Colas

Colas - OperacionesColas - Operaciones

Page 14: Pilas y Colas

Constructores:

Encolar (Insertar al final)

Desencolar (Eliminar al inicio)

Selectores:

Cola-Vacia? (El apuntado Cabeza es Nil?)

Primero-Cola (Mostrar el primero)

ColasColas Implementadas en listasImplementadas en listas

Page 15: Pilas y Colas

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

ColasColasImplementadas en Implementadas en

Vectores - Vectores - AlgoritmosAlgoritmos

Page 16: Pilas y Colas

Colas - EficienciaColas - 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

Page 17: Pilas y Colas

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.

Cola doble enlaceCola doble enlace

Null

Null