Ingeniero De Sistemas

Páginas: 2 (305 palabras) Publicado: 30 de octubre de 2012
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define MAXSIZE 100
struct stack
{
char stack[MAXSIZE];int Top;
};
typedef struct stack NODE;
voidpush(NODE *pu,char item)
{
if (pu->Top == MAXSIZE-1)
printf("\nThe Stack Is Full");
getch();
}
else
pu->stack[++pu->Top]=item;
}
char pop(NODE *po)
{
char item='#';if(po->Top == –1)
printf("\nThe Stack Is Empty. Invalid Infix expression");
else
item=po->stack[po->Top--];
return(item);
}
int prec(char symbol)
{
switch(symbol)
{
case '(':return(1);
case ')':
return(2);
case '+':
case '-':
return(3);
case '*':
case '/':
case '%':
return(4);
case '^':
return(5);
default:
return(0);
}
}
void Infix_Postfix(char infix[]){
int len,priority;
char postfix[MAXSIZE],ch;
NODE *ps;
ps->Top=–1;
len=strlen(infix);
infix[len++]=')';
push(ps,'(');
for(int i=0,j=0;i<len;i++)
{
switch(prec(infix[i])){
case 1:
push(ps,infix[i]);
break;
}
case 2:
ch=pop(ps);
while(ch != '(')
{
postfix[j++]=ch;
ch=pop(ps);
}
break;
case 3:
ch=pop(ps);
while(prec(ch) >= 3)
{postfix[j++]=ch;
ch=pop(ps);
}
push(ps,ch);
push(ps,infix[i]);
break;

case 4:
ch=pop(ps);
while(prec(ch) >= 4)
{
postfix[j++]=ch;
ch=pop(ps);
}
push(ps,ch);
push(ps,infix[i]);
break;case 5:
ch=pop(ps);
while(prec(ch) == 5)
{
postfix[j++]=ch;
ch=pop(ps);
}
push(ps,ch);
push(ps,infix[i]);
break;

default:
postfix[j++]=infix[i];
break;
}
}

printf("\nThe Postfix expression is = ");
for(i=0;i<j;i++)
printf ("%c",postfix[i]);
}
void main()
{
char choice,infix[MAXSIZE];
do
{
clrscr();
printf("\n\nEnter the infix expression =");
fflush(stdin);
gets(infix);
Infix_Postfix(infix);
printf("\n\nDo you want to continue (Y/y) =");
fflush(stdin);
scanf("%c",&choice);
}while(choice == 'Y' || choice=='Y');
}
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ingeniero En Sistemas
  • Ingeniero De Sistemas
  • Ingeniero En Sistema
  • Ingeniero en sistemas
  • Ingeniero De Sistemas
  • Ingeniero en Sistemas
  • Ingeniero de Sistemas
  • ingeniero en sistemas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS