ÎncepețiÎncepe gratuit

Parcurgerea pre-order și notația poloneză

Arborii de expresii sunt un tip de arbore binar care reprezintă expresii aritmetice:

Graphical representation of a binary tree that has arithmetic expressions.

Aplicând parcurgerea în-ordine unui arbore de expresii, obții notația infixată. Pentru arborele dat, această notație este (10-5)*3.

Aplicând parcurgerea pre-order unui arbore de expresii, obții notația prefixată, cunoscută și ca notație poloneză, unde operatorul apare înaintea operanzilor. Pentru arborele dat, această notație este *-10 5 3.

Aplicând parcurgerea post-order unui arbore de expresii, obții notația postfixată, cunoscută și ca notație poloneză inversă, unde operatorul apare după operanzi. Pentru arborele dat, această notație este 10 5- 3*.

Implementează parcurgerea pre-order pentru a obține notația prefixată a acestui arbore de expresii.

Acest exercițiu face parte din cursul

Structuri de date și algoritmi în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Verifică dacă current_node există.
  • Afișează valoarea lui current_node.
  • Apelează recursiv funcția pre_order() pe cele două jumătăți corespunzătoare ale arborelui.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul