Začněte nyníZačněte zdarma

Procházení pre-order a Polská notace

Stromy výrazů jsou speciálním typem binárního stromu, který reprezentuje aritmetické výrazy:

Graphical representation of a binary tree that has arithmetic expressions.

Pokud na strom výrazů aplikuješ procházení in-order, získáš infixovou notaci. Pro daný strom bude mít tvar (10-5)*3.

Pokud aplikuješ procházení pre-order, získáš prefixovou notaci, známou také jako Polská notace, kde operátor předchází své operandy. Pro daný strom bude mít tvar *-10 5 3.

Pokud aplikuješ procházení post-order, získáš postfixovou notaci, známou také jako reverzní Polská notace, kde operátor následuje za svými operandy. Pro daný strom bude mít tvar 10 5- 3*.

Napiš procházení pre-order tak, aby ti vrátilo prefixovou notaci tohoto stromu výrazů.

Toto cvičení je součástí kurzu

Datové struktury a algoritmy v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Zkontroluj, zda current_node existuje.
  • Vypiš hodnotu uzlu current_node.
  • Zavolej funkci pre_order() rekurzivně na příslušné poloviny stromu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód