Volver a la portadaCiencias de la Computación · 1.er año de bachillerato · Cambiar asignatura
Empezar gratis
1° bach · Ciencias de la Computación
Estructuras de datos · Organización y búsqueda de datos

Pilas y colas

En el banco de Santa Tecla, la fila avanza y atienden primero a quien llegó primero. En tu cocina, el último plato que lavaste es el primero que agarrás de la pila. Dos formas de ordenar, dos reglas distintas. En esta página vas a ver cómo la computadora guarda datos con esas mismas reglas, y al final vas a poder decir cuál conviene usar en cada caso.

Dos reglas para entrar y salir

Una lista permite agregar, quitar o modificar en cualquier posición. Una pila y una cola son más estrictas: solo se puede agregar y quitar por lugares fijos. Esa restricción las hace muy útiles, porque el orden de salida es predecible.

Una pila de tres elementos con la cima arriba y una cola de tres elementos con frente a la izquierda y final a la derecha. Pila (LIFO) Cola (FIFO) 482 ← cima base ABC frente final sale por el frente, entra por el final

Fijate en la diferencia: en la pila todo ocurre por un solo extremo (la cima). En la cola se entra por un extremo y se sale por el otro.

Practica★☆☆Sin empezar
Definí qué significan las siglas LIFO y FIFO e indicá cuál corresponde a una pila y cuál a una cola.

Definí qué significan las siglas LIFO y FIFO e indicá cuál corresponde a una pila y cuál a una cola.

Resolver

Pilas: agregar y quitar por la cima

Las dos operaciones básicas de una pila tienen nombres propios:

  • Apilar (agregar): coloca un elemento encima de la cima.

  • Desapilar (quitar): saca la cima y la devuelve.

Practica★☆☆Sin empezar
Una pila está vacía. Se agregan en orden los valores 4, 8 y 2. ¿Cuál es el valor que está en la cima? Si luego se quita un elemento, ¿cuál se quita?

Una pila está vacía. Se agregan en orden los valores 4, 8 y 2. ¿Cuál es el valor que está en la cima? Si luego se quita un elemento, ¿cuál se quita?

Resolver
Practica★★☆Sin empezar
En una pila se aplican estas operaciones sobre la pila vacía: agregar 5, agregar 9, quitar, agregar 3, agregar 7, quitar, quitar. Escribí el contenido final de la pila y…

En una pila se aplican estas operaciones sobre la pila vacía: agregar 5, agregar 9, quitar, agregar 3, agregar 7, quitar, quitar. Escribí el contenido final de la pila y la lista de valores que fueron saliendo, en orden.

Resolver

Colas: entrar por el final, salir por el frente

En una cola las operaciones se llaman:

  • Encolar (agregar): el elemento se pone al final.

  • Desencolar (quitar): sale el elemento del frente.

Practica★☆☆Sin empezar
Clasificá cada situación como pila o cola: (a) personas esperando en la fila de un banco, (b) platos apilados en una cocina, (c) el botón «deshacer» de un editor de…

Clasificá cada situación como pila o cola: (a) personas esperando en la fila de un banco, (b) platos apilados en una cocina, (c) el botón «deshacer» de un editor de texto, (d) documentos esperando para imprimirse.

Resolver
Practica★★☆Sin empezar
Una cola está vacía. Se ejecutan estas operaciones: agregar A, agregar B, agregar C, quitar, agregar D, quitar. Escribí cómo queda la cola al final, indicando cuál es el…

Una cola está vacía. Se ejecutan estas operaciones: agregar A, agregar B, agregar C, quitar, agregar D, quitar. Escribí cómo queda la cola al final, indicando cuál es el elemento del frente, y qué elementos salieron y en qué orden.

Resolver

Dónde aparecen en la vida y en la computación

Situación Estructura Por qué
Fila de personas en el banco Cola Atienden en orden de llegada
Platos apilados Pila Se toma el de arriba, el último puesto
Botón «deshacer» de un editor Pila Se deshace primero la última acción
Documentos esperando impresión Cola Se imprime en orden de envío
Historial de páginas en el navegador Pila «Atrás» regresa a la última página visitada
Turnos en una clínica del ISSS Cola Primero llegado, primero atendido
Practica★★☆Sin empezar
Explicá cómo el historial de páginas visitadas en un navegador, con los botones «atrás», se comporta como una pila. Describí qué pasa con el historial si visitás tres…

Explicá cómo el historial de páginas visitadas en un navegador, con los botones «atrás», se comporta como una pila. Describí qué pasa con el historial si visitás tres páginas (P1, P2, P3) y luego pulsás «atrás» una vez.

Resolver
Practica★★★Sin empezar
Una impresora compartida en un centro escolar recibe trabajos de varios estudiantes: Kevin envía el trabajo 1, Valeria el 2, Óscar el 3. Mientras se imprime el trabajo…

Una impresora compartida en un centro escolar recibe trabajos de varios estudiantes: Kevin envía el trabajo 1, Valeria el 2, Óscar el 3. Mientras se imprime el trabajo 1, llega el de Jennifer (4). Explicá qué estructura conviene usar y por qué, escribí el orden en que se imprimirán y analizá qué problema habría si se usara la otra estructura.

Resolver

Implementarlas con listas

En un entorno de programación visual (tipo Scratch) o en Python no hace falta una estructura nueva: se usa una lista y se respetan las reglas. Con listas, la pila y la cola se parecen mucho; cambia el lado por donde se quita.

En Python:

pila = []

pila.append(4)      # apilar

pila.append(8)

cima = pila.pop()   # desapilar: sale 8

cola = []

cola.append("A")    # encolar

cola.append("B")

frente = cola.pop(0)  # desencolar: sale "A" (índice 0)

En pseudocódigo, con un condicional para evitar el error de la lista vacía:

Si longitud(pila) > 0 Entonces

    quitar el último elemento de pila

Sino

    Escribir "La pila está vacía"

Fin Si

Un uso clásico: paréntesis balanceados

Para saber si los paréntesis están bien cerrados, se recorre la expresión: al ver ( se agrega un símbolo a la pila; al ver ) se quita uno.

Si al terminar la pila no está vacía, falta cerrar algún paréntesis. Si se intenta quitar de una pila vacía, hay un ) de más.

Practica★★★Sin empezar
Se quiere revisar si los paréntesis de la expresión ((a + b) * (c - d)) están bien balanceados usando una pila: se agrega un símbolo al encontrar ( y se quita uno al…

Se quiere revisar si los paréntesis de la expresión ((a + b) * (c - d)) están bien balanceados usando una pila: se agrega un símbolo al encontrar ( y se quita uno al encontrar ). Describí paso a paso cómo cambia la pila al recorrer la expresión, indicá su tamaño máximo y explicá qué indicaría que la pila no esté vacía al terminar o que se intente quitar de una pila vacía.

Resolver

Resumen

  • Pila (LIFO): el último en entrar es el primero en salir; se agrega y se quita por la cima.

  • Cola (FIFO): el primero en entrar es el primero en salir; se agrega al final y se quita por el frente.

  • Pila: deshacer, historial del navegador, platos. Cola: fila del banco, impresión, turnos.

  • Con listas: pila = agregar y quitar del final; cola = agregar al final y quitar del inicio.

  • Revisá siempre que la estructura no esté vacía antes de quitar.

  • Volvé al principio: en el banco rige la regla de la cola (FIFO) y en tu cocina la de la pila (LIFO).

Ver todos los ejercicios de este apartado