1 / 17

Pilas y Colas

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

kirra
Download Presentation

Pilas y Colas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pilas y Colas Estructuras de Datos

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

  4. Pilas de libros Push

  5. Pilas de libros Pop

  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(){ Cnodo nodo; int dato; nodo = getCabeza(); dato = nodo.getIData(); return dato;} public boolean PilaVacia(){ return ( EstaVacia() );} public void ImprimePila(){ ImprimeLista();} } public class CPilaL extends CListaSimple{ public CPilaL(){super();} public void Push( Cnodo nuevo ){ InsertaPrimero(nuevo);} public Cnodo Pop(){ Cnodo nodo; nodo = EliminarPrimero(); return nodo;}

  8. Pilas Implementadas en Vectores - Algoritmos 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 ]

  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. Colas - Operaciones • Operaciones primarias: • Encolar: agrega un nuevo dato al final de la cola • Desencolar: elimina un dato del principio de la cola

  12. Colas - Operaciones Encolar

  13. Colas - Operaciones Desencolar

  14. ColasImplementadas 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. ColasImplementadas en Vectores - Algoritmos Desencolar( Q ) x <– Q[ Cabeza( Q ) ] if Cabeza( Q ) = Length( Q ) Cabeza( Q ) <– 1 else Cabeza( Q ) <– Cabeza( Q ) + 1 return x Encolar( Q, x ) Q[ Fin( Q ) ] <– x if Fin( Q ) = length( Q ) Fin( Q ) <– 1 else Fin( Q ) <– Fin( Q ) + 1

  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. 3 2 1 5 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. Cola doble Cola Cabeza Null Null

More Related