profile
Опубликовано 5 лет назад по предмету Информатика от Lisa19990

Постройте дерево, соответствующее арифметическому выражению. Запишите это выражения в префиксной и постфиксной формах:
(a+b)*(c+2*d)
(2*a-3*d)*c+2*b
3*a-(2*b+c)*d

  1. Ответ
    Ответ дан nelle987
    Деревья строятся просто: добавляем узел – операцию, которая выполняется последней, и к ней два потомка – аргументы этой операции. Например, для выражения a + b операцией будет "+", а аргументами – a и b. Затем в таком же виде представляем аргументы этой операции, пока все аргументы не будут содержать выражений. Построенные деревья во вложении.

    Префиксная форма записи заключается в том, что сначала записывается операция, потом префиксная запись её первого аргумента, потом второго аргумента. Это соответствует обходу дерева сверху вниз и слева направо, записываем, что сверху, потом идем вниз. Вот что получится в итоге:
    а) * + a b + c * 2 d
    б) + * - * 2 a * 3 d c * 2 b
    в) - * 3 a * + * 2 b c d

    В постфиксной записи, наоборот, записываются сначала аргументы, потом операция. Это соответствует обходу дерева снизу-вверх.
    а) a b + c 2 d * + *
    б) 2 a * 3 d * - c * 2 b * +
    в) 3 a * 2 b * c + d * -
Самые новые вопросы