Home » Interview Questions » Interviews » Story Details
Printable Version

Interview Question: Write code to convert In-Fix to postfix notation

by Kamal Rawat on Jan 03, 2012

Write code (Algorithm) to convert an expression given in in-fix notation to the corresponding expression in post-fix notation
Comments: 0    Views: 799

MCN Professionals | Interview Question of the day

MCN Professionals is starting Industrial Training for MCA-2012 Batch. Have a look at our Industrial Training Program and Course Details.
-----------------------------------------------------------------------------------------------------------------------------------------

Today's Question:
Given an arithmetic expression in in-fix notation. Write code to convert that algorithm in corresponding post-fix notation. For example:

Infix             postfix
------            --------
a+b               ab+
(a+b)*c           ab+c*
a+b*c             abc*+
a*(b+c)-d/e       abc+*de/-

Solution:
To solve this expression, we need a Stack. Let the Infix expression be in a String, and postfix expression will go in another string.

Initially the Stack will be empty and postfix expression will also be empty.
Algorithm:
  1. Read the tokens(characters) from the infix string one at a time from left to right
  2. If token is an operand, add it to the Postfix string.
  3. If token is a Left parentheses, Push it on to the Stack
  4. If the token is a Right parentheses
    1. Repeatedly Pop the stack and add the poped out token in to postfix string until a left parenthesis is encountered.
    2. Remove left parenthesis from the stack and ignore it
  5. If token is an operator
    1. If the stack is empty push the operator in to the stack      
    2. If the stack is not empty compare the precedence of the operator with the element on top of the stack
      1. If the operator in the stack has higher precedence than the token Pop the stack and add the poped out element in to the string S. else Push the operator in to the stack                  
      2. Repeat this step until the stack is not empty or the operator in the stack has higher precedence than the token        
  6. Repeat this step till all the characters are read.
  7. After all the characters are read and the stack is not empty then Pop the stack and add the tokens to the string S
  8. Return the Postfix string S
Lets follow an example visually:

Infix Expression: A * (B + C) - D / E

Infix_PostFixStack1.jpg                 
 Infix_PostFixStack2.jpg
Infix_PostFixStack3.jpg
Infix_PostFixStack4.jpg
Infix_PostFixStack6.jpg

Infix_PostFixStack7.jpg
Infix_PostFixStack8.jpg
Infix_PostFixStack9.jpg


Infix_PostFixStack10.jpg

Infix_PostFixStack11.jpg


Infix_PostFixStack12.jpg

Infix_PostFixStack13.jpg

Code:

Try writing it yourself. If you get into problems, I will write a separate post for the code.


---------------------------------------------------------------------------

Interview Questions Archive:

         To see all the questions in the category click here...


Post a Comment
*
DevExpress PowerBuilder Web Development Windows Development Languages Software Engineering Databases
iPhone Architecture Secutiry UML & Modeling Operating Systems Networking Testing
Graphics Design Project Management Hardware Open Source Games Development Business Intelligence Visual Studio LightSwitch 2011
MonoDevelop Visual Studio 2010 ASP.NET HTML, DHTML XML PHP JavaScript
Silverlight Web Services WCF Windows Forms WPF Windows Services Dynamic Link Libraries
ActiveX COM, DCOM, ATL C# VB.NET C++ F# Java
Pascal SQL Server Oracle DB2 MS-Access Windows Servers Windows
Linux Unix SAP LINQ .NET Framework ADO.NET Reporting
Crystal Reports SQL Server Reporting Services Igenda Reports Active Reports Adobe Fireworks Arrays & Collections Hosting
Future Trends Android Windows Phone Smart Devices Business M&A Investment & Funding
Web Browsers Internet Explorer Firefox Safari Common Entrepreneurs Students
Consulting Wiki Gadgets MobileMe iCloud iOS Social Media
Facebook Twitter LinkedIn Google+ Microsoft Kinect XBox
Wii Playstation DirectX i OS OS X CIO, CTO, CEO Windows 8
Web Design Expression Blend 4 Photoshop CS5 Creative Suite 5.5 Expression Web 4 Expression Studio 4 Creative Suite® 5.5 Design
Creative Suite 5.5 Web Creative Suite 5.5 Production Startups Funding M&A Laptops Smart Phones
Desktops Cameras & Camcorders Netbooks Tablets Virtualization Microsoft Surface WordPress
Software Products Cloud Computing Current Affairs Technology TV TV
Earnings XAML E-Commerce MonoTouch Mono for Android Deals Electronics
Mobile Phone Laptop Tablet Book Computer Press Releases Reviews
Products Books Companies Windows Azure SQL Azure Interviews Mac
Web Browsers Symbian Windows Forms WPF Windows Services HTML 5 Office 365
SharePoint 2010 Exchange Server Adobe Visual Studio 2012 iPad Flex / Flash Games
Windows 9
X
 Login
Please login to submit a new post, reply and edit exiting posts, see user profiles, and access more features. If you are not a registered member, Register here.
User Id / Email:
Password:  
Forgot Password | Forgot UserName