Algoritmos, C/C++, Programacion
Balanceo de expresiones usando pilas en c++
13 de Mayo del 2009 por Kalith · Sin Comentarios
Buenas
El balanceo de expresiones (no se con que otro nombre se conoce) consiste entre otras cosas, determinar si una expresion matematica esta correcta los parentesis, corchetes, llaves etc, por ejemplo la siguiente esta correcta:
((8+2) – n) * 7
ok haremos un problema bien sencillo tipico en materias como estructura de datos o programacion no numerica, que consiste en determinar si esta o no esta balanceada una expresion, lo haremos muy sencillo solo con parentesis, expliquemos un poco de teoría rapidito: una pila solo agrega elelementos en la parte superior y el elemento a retirar es el que esta mas en el tope, por eso se dice que el ultimo en entrar es el primero en salir.
En este problema lo que haremos es ir agregando parentesis a la pila cada vez que se encuentre en la palabra un ” ( ” y sacamos el elemento cuando encontremos un ” ) ”
Es algo bien bien sencillo, vamos para no complicarnos la existencia usar la stl de c++
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main(void)
{
string word;
stack <char> parentesis;
cout << "Ingrese una expresion: ";
getline(cin, word);
for(int i = 0; word[i] != '\0'; ++i)
{
if(word[i] == '(')
parentesis.push(word[i]);
else
if(word[i] == ')')
parentesis.pop();
}
if((int)parentesis.size() == 0)
cout << "Esta balanceada" << endl;
else
cout << "No esta balanceada" << endl;
}
ok eso es algo bien básico ya haremos algo mas complejo, todo a su tiempo.
saludos
- Posts Relacionados
- Balanceo de expresiones II Buenas. Ayer en este post hablabamos de balanceo de expresiones...
- Lista de países usando c# Hola! Ayer hablaba con Llyn sobre este tema, debido a...
- Foto Galeria en Flash usando XML Hoy se va a estrenar la seccion de AS lenguaje...
- Instalar drivers ATI/AMD en Debian usando apt En este metodo es continuación de mi entrada anterior sobre...
- Intento de grep en c++ Buenas. Necesitaba este pequeño programita para algo que estoy haciendo,...
- Instalar drivers NVIDIA en Debian usando apt Pues este metodo tiene considerables ventajas sobre usar el instalador...
- Guardar Imagenes en bases de datos usando c# Hola. Después de una prolongada ausencia debido a la culminación...








