Advertisement
Edzhevit

InfixToPostfix

Jan 20th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.34 KB | None | 0 0
  1. package StackAndQueuesExercise;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayDeque;
  7.  
  8. public class InfixToPostfix {
  9.     public static void main(String[] args) throws IOException {
  10.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  11.  
  12.         String[] tokens = reader.readLine().split(" ");
  13.  
  14.         ArrayDeque<Character> numbers = new ArrayDeque<>();
  15.         ArrayDeque<Character> operands = new ArrayDeque<>();
  16.  
  17.         for (int i = 0; i < tokens.length; i++) {
  18.             char symbol = tokens[i].charAt(0);
  19.             if (Character.isDigit(symbol)){
  20.                 numbers.offer(symbol);
  21.             } else if (symbol == '('){
  22.                 operands.push(symbol);
  23.  
  24.             } else if (symbol == ')') {
  25.                 while (operands.peek() != '('){
  26.                     char current = operands.pop();
  27.                     numbers.offer(current);
  28.                 }
  29.                 operands.pop();
  30.  
  31.             } else {
  32.                 operands.push(symbol);
  33.             }
  34.         }
  35.  
  36.         while (!operands.isEmpty()){
  37.             char current = operands.pop();
  38.             numbers.offer(current);
  39.         }
  40.  
  41.         while (!numbers.isEmpty()){
  42.             System.out.print(numbers.poll() + " ");
  43.         }
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement