Обработка скобок при преобразовании инфиксных выражений в постфиксные выражения

Я работаю над проектом на Java, который требует, чтобы я преобразовал инфиксное выражение в постфиксное выражение. В настоящее время я могу конвертировать инфиксные выражения в постфикс с помощью этого метода, если они нене может содержать скобок, но я не могуt понять, как обращаться с круглыми скобками.

По сути, у меня есть два стека, которые содержат объекты, которые называются 'Знак», Токен - это класс-оболочка, который содержит строку, представляющую собой число, переменную (которая оценивается как число, ожидающее ввода пользователя), оператор (с оператором связан уровень приоритета, так что мой метод может определить, как обрабатывать порядок операций между '+', '-', '*' а также '/') или круглые скобки (в скобках есть способ определить, является ли она открытой или закрытой скобкой).

Как мне обращаться с круглыми скобками? Как насчет нескольких слоев скобок?

public String toPostFix() {
    StringBuilder postfixstr = new StringBuilder();

    Stack in_fix = new Stack();
    Stack post_fix = new Stack();

    for (int i = tokens.length - 1; i >= 0; i--) {
        t = new Token(tokens[i]);
        in_fix.push(t);
    }

    //there are still tokens to process
    while (!in_fix.empty()) {
        //is a number
        if (in_fix.peek().type == 1) {     
            postfixstr.append(in_fix.pop().toString());
        } 

        //is an operator and the stack is empty
        else if (in_fix.peek().type == 3 && post_fix.empty()) {   
            post_fix.push(in_fix.pop());
        } 

        // is an operator that has higher priority than the operator on the stack
        else if (in_fix.peek().type == 3 && in_fix.peek().isOperator() > post_fix.peek().isOperator()) {
            post_fix.push(in_fix.pop());
        } 

        // is an operator that has lower priority than the operator on the stack
        else if (in_fix.peek().type == 3 && in_fix.peek().isOperator() 

Ответы на вопрос(2)

Ваш ответ на вопрос