Advertisement
Guest User

Untitled

a guest
May 9th, 2021
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. import java.util.Stack;
  2.  
  3. public class InfixPostFix {
  4.  
  5. static int precedence(char c){
  6. switch (c){
  7. case '+':
  8. case '-':
  9. return 1;
  10. case '*':
  11. case '/':
  12. return 2;
  13. case '^':
  14. return 3;
  15. }
  16. return -1;
  17. }
  18.  
  19. static String infixPostFix(String expression){
  20.  
  21. String result = "";
  22. Stack<Character> stack = new Stack<>();
  23. for (int i = 0; i <expression.length() ; i++) {
  24. char c = expression.charAt(i);
  25.  
  26. if(precedence(c)>0){
  27. while(stack.isEmpty()==false && precedence(stack.peek())>=precedence(c)){
  28. result += stack.pop();
  29. }
  30. stack.push(c);
  31. }
  32. else if(c==')'){
  33. char x = stack.pop();
  34. while(x!='('){
  35. result += x;
  36. x = stack.pop();
  37. }
  38. }
  39. else if(c=='('){
  40. stack.push(c);
  41. }
  42. else{
  43. result += c;
  44. }
  45. }
  46. for (int i = 0; i <=stack.size() ; i++) {
  47. result += stack.pop();
  48. }
  49. return result;
  50. }
  51.  
  52. public static void main(String[] args) {
  53. String exp = "A+B*C^D-E/F";
  54. System.out.println("Infix : " + exp);
  55. System.out.println("Postfix : " + infixPostFix(exp));
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement