ПочатиПочніть безкоштовно

Використання обходу pre-order з польською нотацією

Дерева виразів — це різновид бінарних дерев, що представляють арифметичні вирази:

Graphical representation of a binary tree that has arithmetic expressions.

Якщо виконати обхід in-order для дерева виразів, ви отримаєте інфіксну нотацію. Для наведеного дерева це буде (10-5)*3.

Якщо виконати обхід pre-order для дерева виразів, ви отримаєте префіксну нотацію, або польську нотацію, де оператор розміщується перед операндами. Для наведеного дерева це буде *-10 5 3.

Якщо виконати обхід post-order для дерева виразів, ви отримаєте постфіксну нотацію, або зворотну польську нотацію, де оператор розміщується після операндів. Для наведеного дерева це буде 10 5- 3*.

Реалізуйте обхід pre-order, щоб отримати префіксну нотацію цього дерева виразів.

Ця вправа є частиною курсу

Структури даних і алгоритми в 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)
Редагувати та запускати код