0 / 0 / 0
Регистрация: 12.09.2017
Сообщений: 7
1

Префикс в инфикс, расстановка скобок в результате

13.06.2018, 20:37. Показов 1180. Ответов 0
Метки нет (Все метки)

Возможно ли в этом коде сделать так чтобы скобки в результате ставились только в нужных местах(в данном случае их слишком много выходит)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <stack>
using namespace std;
 
//функция проверяет является ли символ оператором или нет
bool isOperator(char x) {
  switch (x) {
  case '^':
  case '+':
  case '-':
  case '/':
  case '*':
    return true;
  }
  return false;
}
 
//преобразование выражений из префикса в инфикс
string preToInfix(string pre_exp) {
  stack<string> s;
 
 //длина выражения
  int length = pre_exp.size();
 
  // чтение справа налево
  for (int y = length - 1; y >= 0; y--) {
 
    //проверяет является ли символ оператором 
    if (isOperator(pre_exp[y])) {
 
      //удаляет два верхних операнда из стека
      string op1 = s.top();   s.pop();
      string op2 = s.top();   s.pop();
 
      //concat(сложение строк) операнды и оператор
      string temp = "(" + op1 + pre_exp[y] + op2 + ")";
 
     // добавляем строку темп обратно в стэк
      s.push(temp);
    }
 
    //если символ является операндом 
    else {
 
     // добавляет операнд в стэк
      s.push(string(1, pre_exp[y]));
    }
  }
 
  // стэк теперь содержит выражение инфикс
  return s.top();
}
 
int main() {
    setlocale(LC_ALL, "Rus");
  string pre_exp;
  cout << "Введите префиксное выражение:";
  cin >> pre_exp;
  cout << "Infix : " << preToInfix(pre_exp)<< endl;
  return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2018, 20:37
Ответы с готовыми решениями:

Расстановка скобок
y:=-1*(pi+sqr(abs(sin(x)/.... почему под первой скобкой (Х пишет ошибку &quot;.&quot;

Расстановка скобок в цикле for in
Есть формула, не получается прописать ее в python 3.x Не могу расставить скобки походу a -...

Автоматическая расстановка закрывающих скобок
У меня mvc++ 2010 express , как сделать так чтобы автоматом ставилась закрывающая...

Расстановка скобок и возврат списка
Есть такое задание: &quot;Напишите функцию, которая вводит фразу на естественном языке и преобразует ее...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2018, 20:37
Помогаю со студенческими работами здесь

Расстановка скобок в условном операторе
Никак не могу понять где поставить скобки(begin end), чтобы если квадраты чисел равны не выводилось...

Расстановка скобок с максимизацией выражения
Разработать программу, расставляющую скобки во введенном арифметическом выражении с целью...

Расстановка скобок в запросе, в условии or
Доброго времени суток.. есть вот такой запрос DataModuleABS-&gt;ADOQueryZakaz-&gt;SQL-&gt;Add(&quot;SELECT...

Из инфикс в постфикс
Вообщем есть задание написать клас в котором будет выражение переводиться в reversed polish...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru