Вы находитесь на странице: 1из 10

Programación Avanzada

Clase 18
Pilas y Colas

Profesor: Mauricio Hidalgo


Resumen clase anterior
Lista Doblemente Enlazada Circular
 Recordar cómo se implementa un nodo con dos enlaces
 Aprender cómo se implementa una lista doblemente enlazada circular
Objetivos de la Clase
Conocer la Estructura de Datos: Pila
 Aprender cómo se implementa un nodo para Pilas
 Saber qué es una Pila
 Aprender cómo se implementa una Pila

Conocer la Estructura de Datos: Cola


 Aprender cómo se implementa un nodo para Colas
 Saber qué es una Cola
 Aprender cómo se implementa una Cola
Pilas - Stacks

¿Qué es Pila/Stack?

Según Wikipedia
“Es una lista ordenada o estructura de datos en la que el modo de acceso a sus elementos es de
tipo LIFO”.

Gráficamente

¿Qué implica que sea una estructura del tipo LIFO?


¿Hacia “donde” debe apuntar nuestro Nodo?
¿Cuál es el elemento distintivo de la Pilas?
¿Qué operaciones tenemos en una Pila?
Pilas - Stacks

Nodo para Pilas

Es un objeto con:
 Uno o más atributos (sus elementos)
 Un atributo adicional: Un puntero hacia “abajo” ---- ¿Por qué?

Para construirlo:
 Los atributos guardan los elementos del nodo.
 El puntero abajo deben ser NULO

Métodos:
 Solo nos interesa rescatar el dato, por ende, tiene solo un “get”
 No tiene un “set” elemento ya que eso irá, por añadidura, en la
 inserción de un nuevo nodo a una lista.

¡Programemos el Nodo!
Pilas - Stacks

Estructura de Datos: Pila

Es un objeto con
 Un solo nodo centinela o etiqueta: Elemento al tope.

Para construirla
 Toda Pila parte vacía, por ende, su nodo “Tope” debe ser vacío. En Python se utiliza la palabra
reservada “None”

Operaciones de una Pila:


 Vacío: Saber si la Pila está vacía
 Push: Insertar un elemento al tope de la Pila
 Pop: Sacar un elemento del tope de la Pila

¡Programemos la Pila!
Colas - Queues

¿Qué es una Cola/Queue?

Según Wikipedia
“Es una lista ordenada o estructura de datos en la que el modo de acceso a sus elementos es de
tipo FIFO”.

Gráficamente
Colas - Queues

Nodo para Colas

Es un objeto con:
 Uno o más atributos (sus elementos)
 Un atributo adicional: Un puntero hacia “atrás” ---- ¿Por qué?

Para construirlo:
 Los atributos guardan los elementos del nodo.
 El puntero abajo deben ser NULO

Métodos:
 Solo nos interesa rescatar el dato, por ende, tiene solo un “get”
 No tiene un “set” elemento ya que eso irá, por añadidura, en la
 inserción de un nuevo nodo a una lista.

¡Programemos el Nodo!
Colas - Queues

Estructura de Datos: Cola

Es un objeto con
 Dos nodos centinela o etiquetas: Elemento primero y elemento último.

Para construirla
 Toda Cola parte vacía, por ende, su nodo “primero” y su nodo “último” deben ser vacíos. En
Python se utiliza la palabra reservada “None”

Operaciones de una Pila


 Vacio: Saber si la Cola está vacía
 Enqueue: Insertar un elemento al final de la Cola
 Dequeue: Sacar al primer elemento de la Cola

¡Programemos la Cola!
Actividad Propuesta

 Copie todos los programas de esta clase y ejecútelos para estudiar su funcionamiento.
Deberá crear un Main para cada tipo de estructura vista este día.

 Cree un método llamado printAndPop que le permita imprimir el contenido del nodo al tope,
sacarlo de la pila y luego continuar con el siguiente hasta dejar la pila vacía.

 Cree un método llamado printAndDequeue que le permita imprimir el contenido del nodo al
inicio, sacarlo de la cola y luego continuar con el siguiente hasta dejar la cola vacía.

Вам также может понравиться