/**********************************************************************
-> This C++ Program is to convert a given infix expression
(either parenthesized or unparenthesized) to postfix form
-> Ex. of infix expression is ::(a+b^c^d)*(c+d)
-> Data Structers used
Stack:array
-> This program works in microsoft vc++ 6.0 environment.
************************************************************************/
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
class expression
{
private:
char infix[100];
char stack[200];
int top;
int r;
char postfix[100];
public:
void convert();
int input_p(char);
int stack_p(char);
int rank(char);
};
int expression::input_p(char c)
{
if(c==’+’ || c==’-‘)
return 1;
else if(c==’*’ || c==’/’)
return 3;
else if(c==’^’)
return 6;
else if(isalpha(c)!=0)
return 7;
else if(c=='(‘)
return 9;
else if(c==’)’)
return 0;
else
{
cout<<“Invalid expression ::input error\n”;
exit(0);
}
}
int expression::stack_p(char c)
{
if(c==’+’ || c==’-‘)
return 2;
else if(c==’*’ || c==’/’)
return 4;
else if(c==’^’)
return 5;
else if(isalpha(c)!=0)
return 8;
else if(c=='(‘)
return 0;
else
{
cout<<“Invalid expression ::stack error\n”;
exit(0);
}
}
int expression::rank(char c)
{
if(c==’+’ || c==’-‘)
return -1;
else if(c==’*’ || c==’/’)
return -1;
else if(c==’^’)
return -1;
else if(isalpha(c)!=0)
return 1;
else
{
cout<<“Invalid expression ::in rank\n”;
exit(0);
}
}
void expression::convert()
{
cout<<“\n*************************************************\n”
<<“This program converts the given infix expression\n”
<<“in to postfix form”
<<“\n*************************************************\n”;
cout<<“Enter an infix expression ::\n”;
cin>>infix;
int l=strlen(infix);
infix[l]=’)’;
infix[l+1]=”;
//Convertion starts
top=1;
stack[top]='(‘;
r=0;
int x=-1;
int i=0;
char next=infix[i];
while(next!=”)
{
//Pop all the elements to outputin stack which have higher precedence
while( input_p(next) < stack_p(stack[top]) )
{
if(top<1)
{
cout<<“invalid expression ::stack error\n”;
exit(0);
}
postfix[++x]=stack[top];
top–;
r=r+rank(postfix[x]);
if(r<1)
{
cout<<“Invalid expression ::r<1\n”;
exit(0);
}
}
if(input_p( next ) != stack_p( stack[top]))
stack[++top]=next;
else
top–;
i++;
next=infix[i];
}
postfix[++x]=”;
if(r!=1 || top!=0)
{
cout<<“Invalid expression ::error in rank or stack\n”;
exit(0);
}
cout<<“\n\nThe corresponding postfix expression is ::\n”;
cout<<postfix<<endl;
}
int main()
{
expression obj;
obj.convert();
return 0;
}
/************************************************************************
SAMPLE OUTPUT::
—————
*************************************************
This program converts the given infix expression
in to postfix form
*************************************************
Enter an infix expression ::
(a+b^c^d)*(c+d)
The corresponding postfix expression is ::
abcd^^+cd+*
Press any key to continue
**************************************************************************/
Idiot
Check out this version of InFix to PostFix Conversion 🙂
http://msumca2012.blogspot.in/2013/02/infix-to-postfix-conversion.html
Checkout other sorting programs here…..
Heap Sort in C
Bubble Sort in C
Insertion Sort in C
Selection Sort in C
Quick Sort in C
this code doesn’t run…and has so many errors.
use another compiler stupid! code is fine
right said this program code has so many errors….!!
but some error is there
very efficient program
thanking you
this code does not run…has got sooooo many errors..
thank you for writing this great one. i really needed it. mer30
i hate programs
if you hate program den don’t read nor study about it! that’s it!
U SUCK @ AKASH..!
it is very use ful
thank u very much
this is very use full for me
this is my project
lolz… moron..
nicE one
Great program! some modifications to be made if it is to be run in turbo C, which any programmer can do with his eyes closed
thanks this program bcoz dis is our project!!!!!tnks…
really can i ask for it ? because we really need it :)) thnks
Vinods its a Good Hint of postExps for newbies 2 DS.
Great!
The program has so many errors…pls correct
sooo bad code write ever u r fail……..
have u program convert infix to postfix using stack implementation linked list ?
thats my project thank you soo mu ch but can u repair for me cz there is 222 much errors plz i rly appreciate what u will do 10x
works like a dream , thanks a lot !!!!
dn’t work
😛
hey……….
who r u 2 say dont work ?
u didnt do dat thing also………k
how to write A*(B+C)*D infix to postfix
a*(bc+)*d
(abc+*)*d
abc+*d*
jkhkhlsadnmfhsdnfasd
we require a program for this
thanks for you
good job ;D
ya………..really u did a gud job vinod…………..
keep it up frnd…………
Good man….
But i have a problem with this?
Q. i need function for expression like
( ( 10000000000000000000000001231234448563465435434723854278423 / 1111111111234623874627 ) *
(2342384523 + 123124 – 34534534 ) * ( 1231263123242346 + 223423234346 * 234236536 ) )
Need the algorithm or code
If u can do it
Mail me…….
hi Zulfikar,
Did you get the code. I also want that code. If you have can you please fwd it to me as well
do u need it……………………..???…..go to http://www.jumbalakka.com
i need program coding for binary tree traversal…..pls send me dear frndzzz………..my id kavi.skr.raj@gmail.com
for infix to postfix conversion
it does’nt run,pls pki edit naman poh kac proj namin yan pls
good job man!
tis codin was really useful for me.
thanks a lot.
aa program c ma banav…
hey ths program is not in C language…
difficult for me to understand nd it’s so long.
” tHERE’S something wrong in your program!!!!!!!!!!!!”
there are so many errors
so gud i like it
but not so tough
are u using eclipse
are u using java eclipse ???
Apna dimag bhi Lagao
begin new world with c | c++ | c sharp | data structure | more
with code
adwaasd
A great article on ‘Infix to Postfix Conversion’ with Visuals and Examples at the below link:
http://www.rawkam.com/?p=762
What the fuck is tis? loosing my time. so many errors..
run it before publishing next tym……….
pwede bang malaman ung code sa tc++ using goto
I can’t understand this
Ha ha very useful program
Y0u IDIOT
What the hell is this
your program is useless & has incomplete expressions
Run it & then publish otherwise take it & go to HELL
There are some encoding problems.. I specified the solution in the blog title. BTW i tested it properly and then published it.
inta pedda program et;la nerchukuntaru ra
Hi:
i have a project same as what you did , i have a problem to complile.can you help me?
i copy this code and try to run it but it’s not working.
i hate programing:(
do you have this program in C?
wooow man…. simple errors. THIS WORKS.
CHANGE ALL THE SINGLE QUOTES, MAYBE THE SITE F*ED THEM UP. PUT NEW ONES.
AND PUT top– where the programmer had put only top- (2 occurrences in total).
Anyone who’ve tried making this once could do it easily after reading this one. 🙂
i dt understand the part where u said replace top- with top- or put top
//infix[l+1]=”;
what is the above line all about?? why isit infix equals to ” symbol??
i found error same with you
while(next!=”)
me too! What to do to rectify this error?
thats single quote ‘
and type it ‘ and space and then type single quote again ‘
so you type …
while(next!=’ ‘)
i hope thats usefull 🙂
Thank you for this code I have it as homework
What d hell u r mr…
Who is this fu..er
all people who say that this is a good work are mo..er fu..er
go to hell u all si..er fu..er
who fu..er says that this fucker done a great job
first know progran n coding then try to upload such a copy code
else insert fingets in ur asssss
go to hell u all who appreciate this fuck code…
this code sucks!
this is just our assignment..
I executed the program and got 25 errors… why the hell this program is uploaded on net
yar very good job
an efficient program
those who are saying that there are errors
these errors are only the symbolic errors
For The Best Code and Solution to all other Problems Visit:
http://pakk-hungama.blogspot.com
Yes this site is Really awsome. do visit. Wonderfullllll..Thanx Ali
http://pakk-hungama.blogspot.com
Thanx Ali. it Help me Alot.
If you want c++ code for conversion of Infix to Postfix an evaluation contact me @ gousekaleemuddin.syed@gmail.com
i have
Can we have the same program in C too??
how to write (A+B^C^D)*(C+D) in a postfix expression??
code is understandeable but too lengthy can sum one make it bit shorter
this program is very useful.thank you brother.
where you live noman
it has got 102 errors 😦 i thought it would be all perfect but alas!
It is intersting!
it is nice
no no very nice
keep it up frd’s
thnx vinod
This program very nice, this is my destiny, thank you very much 🙂
no logic is there and prgm is very lengthy,,
not running dude
very poor
its very complex logic
why is my result turns like this
Infix: a+b
Postfix: ab+#$@#$@$
thanks for the code. but there is a problem, it closes the window immediately after showing the answer,so i had to add system(“PAUSE”). and noww it shows some character after the answer. can u help me solve this problem plz?
Nicely written post. Did a great work.
Please see this : Pattern Programs In C