Вы находитесь на странице: 1из 10
Programación Avanzada Clase 18 Pilas y Colas Profesor: Mauricio Hidalgo

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

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

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

acceso a sus elementos es de tipo LIFO” . Gráficamente ¿Qué implica que sea una estructura

¿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?

Nodo para Pilas

Pilas - Stacks

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

una lista ordenada o estructura de datos en la que el modo de acceso a sus

Nodo para Colas

Colas - Queues

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.