始める無料で始める

行きがけ順走査とポーランド記法

式木は、数式をツリー構造で表す二分木の一種です。

数式を持つ二分木の図

式木に通りがけ順走査を適用すると、中置記法が取得できます。このツリーにおける中置記法は(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)
コードを編集して実行