ВУЗ:
Составители:
Рубрика:
79
while(c == '*' || c == '/')
{
q.Enqueue(c);
if(s.Count != 0)
c = s.Pop();
else
{
f = false;
break;
}
}
}
// последний извлеченный символ помещается в
// стек, если выход из предыдущих циклов
// осуществился не по достижению конца стека
if(f)
s.Push(c);
// в стек помещается текущая операция
s.Push(str[i]);
}
break;
// если текущий символ '(', он записывается в стек
case '(':
s.Push(str[i]);
break;
// если текущий символ ')', из стека извлекаются
// все знаки операций до ближайшей '(',
// которая также извлекается из стека
case ')':
c = s.Pop();
while(c != '(')
{
q.Enqueue(c);
c = s.Pop();
}
break;
default:
// текущий символ – операнд.
// Он помещается в очередь
q.Enqueue(str[i]); break;
}
}
// формирования строки-результата, извлекая сначала
// все из очереди, а потом из стека
string res = "";
while(q.Count != 0)
res = res + q.Dequeue();
while(s.Count != 0)
res = res + s.Pop();
return res;
}
while(c == '*' || c == '/')
{
q.Enqueue(c);
if(s.Count != 0)
c = s.Pop();
else
{
f = false;
break;
}
}
}
// последний извлеченный символ помещается в
// стек, если выход из предыдущих циклов
// осуществился не по достижению конца стека
if(f)
s.Push(c);
// в стек помещается текущая операция
s.Push(str[i]);
}
break;
// если текущий символ '(', он записывается в стек
case '(':
s.Push(str[i]);
break;
// если текущий символ ')', из стека извлекаются
// все знаки операций до ближайшей '(',
// которая также извлекается из стека
case ')':
c = s.Pop();
while(c != '(')
{
q.Enqueue(c);
c = s.Pop();
}
break;
default:
// текущий символ – операнд.
// Он помещается в очередь
q.Enqueue(str[i]); break;
}
}
// формирования строки-результата, извлекая сначала
// все из очереди, а потом из стека
string res = "";
while(q.Count != 0)
res = res + q.Dequeue();
while(s.Count != 0)
res = res + s.Pop();
return res;
}
79
Страницы
- « первая
- ‹ предыдущая
- …
- 78
- 79
- 80
- 81
- 82
- …
- следующая ›
- последняя »
