//Here is the code when I run it operands are displayed but all operators are garbage data. Can you please help me figure it out.
if (isOperator(expression[i]) == 0)
{
while (((isEmpty() != -1) && (priority(expression[i]) <= priority(stack[getTop()]))))
{
exp[j++] = expression[i];
}
push(expression[i]);
}
while проверяет, является ли стек пустым и приоритет оператора меньше или равен приоритету ранее существовавшего оператора. IsOperator проверяет, является ли отсканированный символ оператором, и возвращает 0 или 1, i - это счетчик для l oop, который пересекает всю строку. А также является индексом входного выражения. j - это индекс выходного выражения
, например, когда я ввожу: a + b- c d ожидаемый вывод: ab + cd - реальный вывод: abcd?