InicioApuntes Y MonografiasOperaciones con Pilas-notación interfija a postfija C/C++

Operaciones con Pilas-notación interfija a postfija C/C++

Este es el código de un algoritmo muy usado en los cursos de estructuras de datos pasa una operación en notación interfija a notación postfija de bajo esta el código con las funciones básicas de la "pila" espero les sirva para los que van empezando en esto de la programación... Saludos a la comunidad de la ESCOM #include "pila1.cpp" #define MAX 20 int Proced(TipoDato cima,TipoDato simb); int main () { TipoDato simb,Cad={' '}; Pila Pil; int a=0,i,flag=0; CrearPila(&Pil); puts("introduce una operacion en notacion interfija"); while((simb=getchar())!='n'){ if(simb!=('/') && simb!=('*') && simb!=('-') && simb!=('+') && simb!=('^') && simb!=('(') &&simb!=(')')){ Cad=simb; a=a+1; } else{ if(simb=='('){ Cad=simb; a=a+1; flag=1;} else if(simb==')'){ while(!PilaVacia(Pil)){ Cad=Quitar(&Pil); a=a+1; } Cad=simb; a=a+1; flag=0; } else if(!PilaVacia(Pil) && Proced(Cima(Pil),simb)){ while(!PilaVacia(Pil) && Proced(Cima(Pil),simb)){ Cad=Quitar(&Pil); a=a+1; }} if(simb!=')' && simb!='(') Ingresar(&Pil,simb); } } while(!PilaVacia(Pil)){ Cad=Quitar(&Pil); a=a+1; } puts(Cad); system("pause"); } int Proced(TipoDato cima,TipoDato simb) { if(cima=='^') { return 1; } else if((cima=='*' || cima=='/') && (simb=='-' || simb=='+')) { return 1; } else{ return 0;} } aquí el archivo con las operaciones de la pila no olvides ponerlos en la misma carpeta typedef char TipoDato; #include "PilaE.h" int PilaLlena(Pila P) { return(P.cima == TAM -1)?1:0; } int PilaVacia(Pila P) { return (P.cima == -1)?1:0; } void Ingresar(Pila *P, TipoDato x) { if(PilaLlena(*P)) { puts("Error, Pila llena"); return; //exit(-1); } P->lista[++P->cima] = x; } TipoDato Quitar(Pila *P) { if(PilaVacia(*P)) { puts("Error, pila vacia"); TipoDato xx; return xx; //exit(-1); } TipoDato aux = P->lista[P->cima]; P->cima--; return aux; } TipoDato Cima(Pila P) { if(PilaVacia(P)) { puts("Error"); TipoDato xx; return xx; //exit(-1); } return (P.lista[P.cima]); } void CrearPila(Pila *P) { P->cima = -1; } ambos archivos se guardan con extencion .Cpp
Datos archivados del Taringa! original
8puntos
7,745visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

t
thor11🇦🇷
Usuario
Puntos0
Posts3
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.