Для каждого из предложенных арифметических выражений построим дерево выражений, а затем запишем это выражение в префиксной (польской) и постфиксной (обратной польской) нотациях.
Выражение 1: (a+b)(c+2d)
Дерево выражений:
*
/ \
+ +
/| |\
a b c *
/ \
2 d
Префиксная нотация (польская запись):
* + a b + c * 2 d
Постфиксная нотация (обратная польская запись):
a b + c 2 d * + *
Выражение 2: (2a-3d)c+2b
Дерево выражений:
+
/ \
* *
/| |\
- c 2 b
/ \
* *
/| |\
2 a 3 d
Префиксная нотация (польская запись):
+ * - * 2 a * 3 d c * 2 b
Постфиксная нотация (обратная польская запись):
2 a * 3 d * - c * 2 b * +
Выражение 3: 3a-(2b+c)*d
Дерево выражений:
-
/ \
* *
/| |\
3 a + d
/ \
2 b c
Префиксная нотация (польская запись):
- * 3 a * + 2 b c d
Постфиксная нотация (обратная польская запись):
3 a * 2 b c + d * -
Каждое дерево представляет структуру вычислений, которые необходимо выполнить для получения результата выражения. Префиксная нотация позволяет записать выражение таким образом, что операторы предшествуют своим операндам, а постфиксная нотация ставит операторы после их операндов. Обе формы полезны для различных способов машинной обработки арифметических выражений.