ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
while(c != '(')
{
q.PushElement((int)c);
if(!s.IsEmpty())
c = (char)s.PopElement();
else
{
f = false;
break;
}
}
}
else
{
// если текущая операция '*' или
// '/',из стека в очередь
// перемещаются все знаки операций
// либо до достижения пустоты стека,
// либо до достижения
// символов '(', '+' или '-'
while(c == '*' || c == '/')
{
q.PushElement((int)c);
if(!s.IsEmpty())
c = (char)s.PopElement();
else
{
f = false;
break;
}
}
}
// последний извлеченный символ
// помещается в стек, если выход из
// предыдущих циклов осуществился не по
// достижению конца стека
if(f)
s.PushElement((int)c);
// в стек помещается текущая операция
s.PushElement((int)str[i]);
}
break;
// если текущий символ '(', он записывается в стек
case '(':
s.PushElement((int)str[i]);
break;
// если текущий символ ')', из стека извлекаются
// все знаки операций до ближайшей '(',
165
Объектно-ориентированное программирование на С++ while(c != '(') { q.PushElement((int)c); if(!s.IsEmpty()) c = (char)s.PopElement(); else { f = false; break; } } } else { // если текущая операция '*' или // '/',из стека в очередь // перемещаются все знаки операций // либо до достижения пустоты стека, // либо до достижения // символов '(', '+' или '-' while(c == '*' || c == '/') { q.PushElement((int)c); if(!s.IsEmpty()) c = (char)s.PopElement(); else { f = false; break; } } } // последний извлеченный символ // помещается в стек, если выход из // предыдущих циклов осуществился не по // достижению конца стека if(f) s.PushElement((int)c); // в стек помещается текущая операция s.PushElement((int)str[i]); } break; // если текущий символ '(', он записывается в стек case '(': s.PushElement((int)str[i]); break; // если текущий символ ')', из стека извлекаются // все знаки операций до ближайшей '(', 165
Страницы
- « первая
- ‹ предыдущая
- …
- 163
- 164
- 165
- 166
- 167
- …
- следующая ›
- последняя »