Procházení pre-order a Polská notace
Stromy výrazů jsou speciálním typem binárního stromu, který reprezentuje aritmetické výrazy:

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
Pokyny k cvičení
- Zkontroluj, zda
current_nodeexistuje. - 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)