1.Infix to postfix conversion
#include
#include
#include
char arr[100];
int maxsize;
int top;
void push(char c)
{
top++;
arr[top]=c;
}
char pop()
{
if(top==-1){
return -1;
}
char x= arr[top];
top--;
return x;
}
int prec(char ch){
if(ch=='+'||ch=='-')
return 1;
else if(ch=='*'||ch=='/')
return 2;
else
return -1;
}
main()
{
maxsize=100;top=-1;
char infix[100],postfix[100];
int i,k=0;
printf("enter infix");
scanf("%s",infix);
for(i=0;i
switch(infix[i])
{
case '(':
push(infix[i]);
break;
case ')':
char c;
while((c=pop())!='(')
{
postfix[k++]=c;
}
break;
case '+':
case '-':
case '*':
case '/':
if(top==-1){
push(infix[i]);
}
else
{
while(prec(arr[top])>=prec(infix[i]))
{
postfix[k++]=pop();
}
push(infix[i]);
}
break;
default:
postfix[k++]=infix[i];
break;
}
}
while(top!=-1)
{
postfix[k++]=pop();
}
postfix[k]='\0';
printf("%s is postfix",postfix);
getch();
}
#include
#include
#include
int arr[100];
int maxsize=100;
int top=-1; /* Global declarations */
push(int elem)
{
top=top+1 ; /* Function for PUSH operation */
arr[top]=elem;
}
int pop()
{
int x=arr[top] ;
top=top-1; /* Function for POP operation */
return(x);
}
main()
{ /* Main Program */
char pofx[50],ch;
int i=0,op1,op2,res,val;
printf("\n\nRead the Postfix Expression ? ");
scanf("%s",pofx);
for(i=0;i
{
switch(pofx[i])
{
case '+':
op1=pop();
op2=pop();
res=op2+op1;
push(res);
break;
case '-':
op1=pop();
op2=pop();
res=op2-op1;
push(res);
break;
case '*':
op1=pop();
op2=pop();
res=op2*op1;
push(res);
break;
case '/':
op1=pop();
op2=pop();
res=op2/op1;
push(res);
break;
default:
printf("Enter the value of %c",pofx[i]);
scanf("%d",&val);
push(val);
break;
}
}
printf("\n Given Postfix Expn: %s\n",pofx);
printf("\n Result after Evaluation: %d\n",arr[top]);
}
3.Evaluation of Prefix Expression
#include
#include
#include
int arr[100];
int maxsize=100;
int top=-1; /* Global declarations */
push(int elem)
{
top=top+1 ; /* Function for PUSH operation */
arr[top]=elem;
}
int pop()
{
int x=arr[top] ;
top=top-1; /* Function for POP operation */
return(x);
}
main()
{ /* Main Program */
char prefix[50],ch;
int i=0,op1,op2,res,val;
printf("\n\nRead the prefix Expression ? ");
scanf("%s",prefix);
for(i=strlen(prefix)-1;i>=0;i--)
{
switch(prefix[i])
{
case '+':
op1=pop();
op2=pop();
res=op1+op2;
push(res);
break;
case '-':
op1=pop();
op2=pop();
res=op1-op2;
push(res);
break;
case '*':
op1=pop();
op2=pop();
res=op1*op2;
push(res);
break;
case '/':
op1=pop();
op2=pop();
res=op1/op2;
push(res);
break;
default:
printf("Enter the value of %c",prefix[i]);
scanf("%d",&val);
push(val);
break;
}
}
printf("\n Given Postfix Expn: %s\n",prefix);
printf("\n Result after Evaluation: %d\n",arr[top]);
}
Thanks a lot
ReplyDelete