Преобразование из инфиксного выражения в постфикс (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