目次
データ構造の式における接頭辞と中間接尾辞の表現 - 二分木の応用
データ構造の式における接頭辞と中間接尾辞の表現 - 二分木の応用
前置式、中置式、後置式とは
前置式、中置式、および後置式は、ツリーを介して式を保存および計算する3 つの異なる方法です。
例として次の式を考えてみましょう
式はツリーに保存され、次のように表現できます。
次に問題が発生します。ツリーは単なる抽象データ構造であり、何らかの形式のテキストを介して保存および入力する必要があります。
このときの表現方法は前置式、中置式、後置式の3つです。
これらはそれぞれツリーの前次トラバース、中次トラバース、後次トラバースに相当し、前、中、後はトラバース時のシンボルの走査順序を指します。
プリオーダートラバーサル: シンボル - 左オペランド - 右オペランド
インオーダートラバーサル: 左オペランド - 符号 - 右オペランド
ポストオーダートラバーサル: 左オペランド - 右オペランド - シンボル
中置式
上記の式、順序走査の結果は次のようになります。
明らかに、この式は曖昧です。たとえば、ab はサブツリー、cd はサブツリー、そして最後に減算されます。走査結果は上記と同じです。
したがって、中置式では、目的の結果を正しく表現するために括弧を使用する必要があります。
中置式の式結果は次のようになります。
この表現は人間の読書習慣と一致しています
接頭辞式
上記の式、事前順序走査の結果は次のようになります。
この式は明確であり、接頭辞式の結果として直接使用できます。
この式はコンピュータの処理習慣と一致しており、プログラムはこの式を簡単に解析できます。
具体的にどのように解析するか、コードを以下に示します。
後置式
上記の式、事後走査の結果は次のようになります。
この式はコンピュータの処理習慣とも一致しており、分析も非常に簡単です
接頭辞表現と比較して、接尾辞表現の記号の読み取り順序は人間の読書習慣と一致しています。
したがって、実際のコンピュータプログラムでは、基本的に接尾辞式を使用して数式を格納し、次に接頭辞式を使用します。
中置式の場合は、最初に後置式に変換してから評価できます。