Преобразование из инфиксного выражения в постфикс (C ++) с использованием стеков

Мой лектор дал мне задание на создание программы для преобразования и добавления выражения в постфикс с использованием стеков. Я'Мы создали классы стека и некоторые функции для чтения выражения инфикса.

Но эта функция называетсяconvertToPostfix(char * const inFix, char * const postFix) которая отвечает за преобразование выражения inFix в массиве inFix в выражение post fix в массиве postFix с использованием стеков, не делает то, что предполагает. Можете ли вы, ребята, помочь мне и сказать мне, что яя делаю неправильно?

Ниже приведен код, где функции для преобразования из inFix в postFix иconvertToPostfix(char * const inFix, char * const postFix) это то, что мне нужно помочь исправить:

 void ArithmeticExpression::inputAndConvertToPostfix()
    {
       char inputChar; //declaring inputChar
       int i = 0; //inizalize i to 0

       cout < "Enter the Arithmetic Expression(No Spaces): ";

       while( ( inputChar = static_cast= MAXSIZE) break; //exits program if i is greater than or equal to 100

          if(isdigit(inputChar) || isOperator(inputChar))
          {
             inFix[i] = inputChar; //copies each char to inFix array
             cout < inFix[i] < endl;
          }
          else
             cout < "You entered an invalid Arithmetic Expression\n\n" ;

          }

          // increment i;
          i++;
          convertToPostfix(inFix, postFix);


       }




    bool ArithmeticExpression::isOperator(char currentChar)
    {

        if(currentChar == '+')
            return true;
        else if(currentChar == '-')
            return true;
        else if(currentChar == '*')
            return true;
        else if(currentChar == '/')
            return true;
        else if(currentChar == '^')
            return true;
        else if(currentChar == '%')
            return true;
        else
            return false;
    }

    bool ArithmeticExpression::precedence(char operator1, char operator2)
    {
        if ( operator1 == '^' )
           return true;
        else if ( operator2 == '^' )
           return false;
        else if ( operator1 == '*' || operator1 == '/' )
           return true;
        else if ( operator1 == '+' || operator1 == '-' )
           if ( operator2 == '*' || operator2 == '/' )
              return false;
           else
              return true;

        return false;
    }

   void ArithmeticExpression::convertToPostfix(char * const inFix, char * const postFix)
        {
           Stack2

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

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