Pilas y Colas Estructuras de Datos Pilas Son

  • Slides: 17
Download presentation
Pilas y Colas Estructuras de Datos

Pilas y Colas Estructuras de Datos

Pilas • Son estructuras utilizadas muy a menudo como herramientas de programación de tipo

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

Pilas - Operaciones • Básicamente poseen dos operaciones primarias: – Push: inserta la data

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

Pilas de libros

Pilas de libros

Pilas de libros

Pilas de libros

Pilas Implementadas en listas Constructores: Push (Insertar al inicio) Pop (Eliminar al inicio) Selectores:

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)

Pilas Implementadas en listas public class CPila. L extends CLista. Simple{ public CPila. L(){super();

Pilas Implementadas en listas public class CPila. L extends CLista. Simple{ public CPila. L(){super(); } public void Push( Cnodo nuevo ){ Inserta. Primero(nuevo); } public Cnodo Pop(){ Cnodo; nodo = Eliminar. Primero(); return nodo; } public int Peek(){ Cnodo; int dato; nodo = get. Cabeza(); dato = nodo. get. IData(); return dato; } public boolean Pila. Vacia(){ return ( Esta. Vacia() ); } public void Imprime. Pila(){ Imprime. Lista(); } }

Pilas Implementadas en Vectores - Algoritmos Pila. Vacia( S ) If top( S )

Pilas Implementadas en Vectores - Algoritmos Pila. Vacia( 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 Pila. Vacia error else Top( S ) <– Top( S ) - 1 return S[ Top( S ) + 1 ]

Pilas - Eficiencia • El tiempo de ejecución de las operaciones primarias de una

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

Colas • Son estructuras de datos de tipo FIFO (First in-First out) • Simulan

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

Colas - Operaciones • Operaciones primarias: – Encolar: agrega un nuevo dato al final

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

Colas - Operaciones

Colas - Operaciones

Colas Implementadas en listas Constructores: Encolar (Insertar al final) Desencolar (Eliminar al inicio) Selectores:

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)

Colas Implementadas en Vectores - Algoritmos Encolar( Q, x ) Q[ Fin( Q )

Colas Implementadas en Vectores - Algoritmos 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 - Eficiencia • El tiempo de ejecución de las operaciones primarias de una

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

Cola doble enlace La mejor implementación de cola, es con una lista, donde se

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