Está en la página 1de 4

4.

- 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= {(a + b) [(c - d) ^ 2]}. Escribir el
algoritmo (Pseudo Cdigo) que use una PILA para ver si una cadena es balanceada.

INICIO

Leer s;
Es Balanceado verdadero;
meter ! en pila;
Si s= entonces //s es nulo.
Es Balanceado verdadero;
Caso contrario
Examinar s de izquierda a derecha
Si se encuentra carcter de apertura entonces
Meter en pila;
Es Balanceado falso;
Fin_si
Si se encuentra carcter de cerradura entonces
Si carcter es de la misma precedencia que el valor del tope de la
pila entonces
Sacar de pila ltimo dato;
EsBalanceado verdadero;
Caso contrario
Es Balanceado falso;
Fin_si
Fin_si
Fin_si
Imprimir (s+ Es Balanceado: Es Balanceado);

FIN
3. Considera que palabra es una palabra de tipo Cola que contiene la entrada del usuario
por teclado, P una pila de caracteres y el siguiente algoritmo:

1. Mientras haya ms caracteres en palabra hacer N


2. apilar el primero de la cola en la pila P
3. sacar de la cola
4. Fin_Mientras
5. Mientras la pila P no sea vaca hacer
3
6. Escribir la cima de P
7. Desafilar de P 2

8. Fin_mientras 1
1 2 3 .... N

Cul es la salida para la entrada examen?

INICIO
Datos iniciales

Frente = -1 ; N
Final = -1 ; Tope = 1

//Algoritmo para meter los caracteres

Si Frente = -1 entonces
Escribir Cola vaca
Frente =1
Final =1
Cola [Frente]=carac
Sino
Si Final = N entonces
Escribir Cola llena
Sino
Final = Final +1
Fin_Si
Fin_Si

// Algoritmo para Sacar un caracter de Cola y ponerlo en Pila

Mientras Frente <= Final hacer


Pila [Tope] = Cola [Frente]
Frente = Frente +1
Tope = Tope +1
Fin_Mientras
//Algoritmo para Sacar de Pila un caracter y mostrarlo

Mientras tope <> 0 hacer


Escribir Pila[Tope]
Tope = Tope 1
Si Tope = 0 entonces
Tope = -1
Frente = -1
Final = -1
Fin_Si
Fin_Mientras

FIN

N=6

frente final Cola[frente] Cola[final]


-1 -1
1 1 e e
2 x x
3 a a
4 m m
5 e e
6 n n
7

Final Frente Tope Pila[tope] Cola[frente]


6 1 1 e e
2 2 x x
3 3 a a
4 4 m m
5 5 e e
6 6 n n
7

Tope Pila[Tope]
6 n
5 e
4 m
3 a
2 x
1 e
0

La salida es: nemaxe

También podría gustarte