НачатьНачать бесплатно

Обход в прямом порядке и польская нотация

Деревья выражений — это разновидность бинарных деревьев, представляющих арифметические выражения:

Graphical representation of a binary tree that has arithmetic expressions.

Применив обход в симметричном порядке к дереву выражений, вы получите инфиксную нотацию. Для данного дерева она будет выглядеть так: (10-5)*3.

Применив обход в прямом порядке к дереву выражений, вы получите префиксную нотацию, известную также как польская нотация, — оператор записывается перед операндами. Для данного дерева она будет выглядеть так: *-10 5 3.

Применив обход в обратном порядке к дереву выражений, вы получите постфиксную нотацию, известную также как обратная польская нотация, — оператор записывается после операндов. Для данного дерева она будет выглядеть так: 10 5- 3*.

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

Это упражнение является частью курса

Структуры данных и алгоритмы на Python

Посмотреть курс

Инструкции к упражнению

  • Проверьте, существует ли current_node.
  • Выведите значение current_node.
  • Вызовите функцию pre_order() рекурсивно для каждой из частей дерева.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

import queue

class ExpressionTree:
  def __init__(self):
    self.root = None

  def pre_order(self, current_node):
    # Check if current_node exists
    ____:
      # Print the value of the current_node
      ____
      # Call pre_order recursively on the appropriate half of the tree
      ____
      ____
          
et = CreateExpressionTree()
et.pre_order(et.root)
Редактировать и запускать код