Infix to Prefix Conversion in Java
Infix to Prefix Conversion:-
In this page we will learn the infix to prefix conversion in Java .
Suppose there are two operands A and B and an operator (op) , the infix conversion implies that op will be placed in between a and b i.e a op b. When the operator is placed after both operands i.e ab op , it is called postfix notation. And when the operator is placed before the operands i.e op ab , the expression in prefix notation.
let us see how to do this in java :-
Code for Infix to Prefix in java using stack
Run
import java.util.*;
public class Main
{
public static int precedence(char op) {
switch (op) {
case '+':
case '-':
return 1;
case '*':
case '/':
case '%':
return 2;
case '^':
return 3;
}
return -1;
}
public static String infixToPrefix(String infix) {
String prefix = "";
Stack< Character> operators = new Stack< >();
for (int i = infix.length() - 1; i >= 0; --i) {
char ch = infix.charAt(i);
if (precedence(ch) > 0) {
while (operators.isEmpty() == false && precedence(operators.peek()) > precedence(ch)) {
prefix += operators.pop();
}
operators.push(ch);
} else if (ch == '(') {
char x = operators.pop();
while (x != ')') {
prefix += x;
x = operators.pop();
}
} else if (ch == ')') {
operators.push(ch);
} else {
prefix += ch;
}
}
while (!operators.isEmpty()) {
prefix += operators.pop();
}
String reversedPrefix = "";
for (int i = prefix.length() - 1; i >= 0; i--) {
reversedPrefix += prefix.charAt(i);
}
return reversedPrefix;
}
public static void main (String[]args)
{
String exp = "A+B*(C^D-E)";
System.out.println ("Infix Expression: " + exp);
System.out.println ("Prefix Expression:" + infixToPrefix (exp));
}
}
Output:
Infix Expression: A+B*(C^D-E) Prefix Expression: +A*B-^CDE
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others
Stacks
- Introduction to Stack in Data Structure
Click Here - Operations on a Stack
Click Here - Stack: Infix, Prefix and Postfix conversions
Click Here - Stack Representation in –
C | C++ | Java - Representation of a Stack as an Array. –
C | C++ | Java - Representation of a Stack as a Linked List. –
C | C++ | Java - Infix to Postfix Conversion –
C | C++ | Java - Infix to prefix conversion in –
C | C++ | Java - Postfix to Prefix Conversion in –
C | C++ | Java
Queues
- Queues in Data Structures (Introduction)
Click Here - Queues Program in C and implementation
Click Here - Implementation of Queues using Arrays | C Program
Click Here - Types of Queues in Data Structure
Click Here - Application of Queue Data Structure
Click Here - Insertion in Queues Program (Enqueuing) –
C | C++ | Java - Deletion (Removal) in Queues Program(Dequeuing) –
C | C++ | Java - Reverse a Queue –
C | C++ | Java - Queues using Linked Lists –
C | C++ | Java - Implement Queue using Stack –
C | C++ | Java - Implement Queue using two Stacks –
C | C++ | Java
Circular Queues
- Circular queue in Data Structure
Click Here - Applications of Circular Queues
Click Here - Circular queue in –
C | C++ | Java - Circular queue using Array –
C | C++ | Java - Circular Queue using Linked Lists –
C | C++ | Java
Priority Queue
Stacks
- Introduction to Stack in Data Structure
- Operations on a Stack
- Stack: Infix, Prefix and Postfix conversions
- Stack Representation in – C | C++ | Java
- Representation of a Stack as an Array. – C | C++ | Java
- Representation of a Stack as a Linked List. – C | C++ | Java
- Infix to Postfix Conversion – C | C++ | Java
- Infix to prefix conversion in – C | C++ | Java
- Postfix to Prefix Conversion in – C | C++ | Java
Queues
- Queues in Data Structures (Introduction)
- Queues Program in C and implementation
- Implementation of Queues using Arrays | C Program
- Types of Queues in Data Structure
- Application of Queue Data Structure
- Insertion in Queues Program (Enqueuing) – C | C++ | Java
- Deletion (Removal) in Queues Program(Dequeuing) – C | C++ | Java
- Reverse a Queue – C | C++ | Java
- Queues using Linked Lists – C | C++ | Java
- Implement Queue using Stack – C | C++ | Java
- Implement Queue using two Stacks – C | C++ | Java
Circular Queues
- Circular queue in Data Structure
- Applications of Circular Queues
- Circular queue in – C | C++ | Java
- Circular queue using Array – C | C++ | Java
- Circular Queue using Linked Lists – C | C++ | Java

Login/Signup to comment