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.
| Pila | Cola | Qué 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 |
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
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(")("))