Saltar al contenido
codexivo
Menú

Avanzado

Pilas y colas

Listas con un vocabulario propio para que el algoritmo se lea como se explica.

Una pila saca primero lo último que entró, como una pila de platos. Una cola saca primero lo primero que entró, como una fila.

PilaColaQué hace
apilar(p, x)encolar(c, x)Agrega al final
desapilar(p)desencolar(c)Quita y regresa el último / el primero
tope(p)frente(c)Regresa, sin quitarlo, el que saldría
Abrir en el sandbox
variable pendientes = []
encolar(pendientes, "lavar")
encolar(pendientes, "secar")
imprimir(desencolar(pendientes), frente(pendientes))

variable pila = []
apilar(pila, 1)
apilar(pila, 2)
imprimir(desapilar(pila), tope(pila))

Sacar de una pila o cola vacía es un error.

Ejemplo: paréntesis balanceados

Abrir en el sandbox
procedimiento balanceado(texto) {
  variable pila = []
  para_cada c en texto {
    si (c == "(") {
      apilar(pila, c)
    } pero_si (c == ")") {
      si (longitud(pila) == 0) {
        regresa falso
      }
      desapilar(pila)
    }
  }
  regresa longitud(pila) == 0
}
imprimir(balanceado("(a(b)c)"), balanceado("(()"), balanceado(")("))