Está en la página 1de 1

8.

- Dado los caracteres ( ), [ ], { }, y una cadena s; s est balanceada si tiene alguno


de estos formatos, s=, (String nulo), s= (T), s= {T}, s= TU en donde T y U son
cadenas balanceadas (en otras palabras, para cada parntesis, llave o corchete abierto
existe un carcter de cierre correspondiente). Ejemplo s = {[(c - d) ^ 2] + 1}.
Escribir el algoritmo (pseudocdigo) que use una PILA para ver si una cadena es
balanceada.
INICIO
tope= 0 ; fondo = 0, i =1;
boleano v = verdadero;
cadena : S , n = longitud ( S )
Leer S;

Mientras i <= n Hacer


Si tope=0
v = verdadero;
Fin Si

Si (es parntesis llave o corchete )


Si es CarcterAbierto
Tope=tope+1;
pila[tope] = CaracterAbierto;
v = falso;
Sino
Si tope < > 0
Si precedencia(caracter) = precedencia(pila[tope])
pila[tope] = ' ';
tope--;
v = verdadero;
Sino
pila[tope] = ' ';
tope--;
v = falso;
FinSi
Sino
tope = 0;
pila[tope] = ' ';
v = falso;
FinSi
FinSi
Finsi
i=i+1;
Fin_Mientras

Si v == verdadero
Mostrar "La expresin est balanceada ";
Sino
Mostrar "La expresin no est balanceada ";
Fin_Si

FIN

También podría gustarte