Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package StackAndQueuesExercise;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayDeque;
- public class InfixToPostfix {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- String[] tokens = reader.readLine().split(" ");
- ArrayDeque<Character> numbers = new ArrayDeque<>();
- ArrayDeque<Character> operands = new ArrayDeque<>();
- for (int i = 0; i < tokens.length; i++) {
- char symbol = tokens[i].charAt(0);
- if (Character.isDigit(symbol)){
- numbers.offer(symbol);
- } else if (symbol == '('){
- operands.push(symbol);
- } else if (symbol == ')') {
- while (operands.peek() != '('){
- char current = operands.pop();
- numbers.offer(current);
- }
- operands.pop();
- } else {
- operands.push(symbol);
- }
- }
- while (!operands.isEmpty()){
- char current = operands.pop();
- numbers.offer(current);
- }
- while (!numbers.isEmpty()){
- System.out.print(numbers.poll() + " ");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement