プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データ構造のプレフィックス式とポストフィックス式


算術式の記述方法は表記法として知られています。算術式は、式の本質や出力を変更せずに、3つの異なるが同等の表記法で記述できます。これらの表記は–

  • 中置

  • プレフィックス

  • 接尾辞

中置記法は通常の記法であり、さまざまな数式を書くときに使用されます。接頭辞と後置記法はまったく異なります。

プレフィックス表記

この表記では、演算子はプレフィックスです。 オペランドに、つまり演算子はオペランドの前に書き込まれます。たとえば、 + ab 。これは、中置記法 a + bと同等です。 。プレフィックス表記は、ポーランド記法とも呼ばれます。 。

後置表記

この表記スタイルは、逆ポーランド記法として知られています。 。この表記スタイルでは、演算子は後置されます オペランドに、つまり、演算子はオペランドの後に書き込まれます。例: ab + 。これは、中置記法 a + bと同等です。 。

表現番号 中置記法 プレフィックス表記 後置表記
1 a + b + a b a b +
2 (a + b)* c * + a b c a b + c *
3 a *(b + c) * a + b c a b c + *
4 a / b + c / d + / a b / c d a b / c d / +
5 (a + b)*(c + d) * + a b + c d a b + c d + *
6 ((a + b)* c)-d -* + a b c d a b + c * d-

式の解析

すでに説明したように、中置記法を解析するアルゴリズムやプログラムを設計するのはあまり効率的な方法ではありません。代わりに、これらの中置記法は最初に接尾辞または接頭辞表記に変換されてから計算されます。

算術式を解析するには、演算子の優先順位と結合性にも注意を払う必要があります。

優先順位

オペランドが2つの異なる演算子の間にある場合、どちらの演算子が最初にオペランドを取得するかは、他の演算子に対する演算子の優先順位によって決定されます。例–

𝑎 + 𝑏 ∗ 𝑐 → 𝑎 + (𝑏 ∗ 𝑐)

乗算演算は加算よりも優先されるため、b*cが最初に評価されます。演算子の優先順位の表は後で提供されます。


  1. ハーフエッジデータ構造

    はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ

  2. データ構造における適応型マージとソート

    アダプティブマージソート アダプティブマージソートは、ソートされたサブリストのマージソートを実行します。ただし、最初のサブリストのサイズは、サイズ1のサブリストではなく、要素のリスト間の順序の存在に依存します。たとえば、図のリストについて考えてみます。 2つのソートされたサブリストで構成されています。 要素16、15、14、13を含むサブリスト1。 要素9、10、11、12のサブリスト2。 サブリスト1はソートされていますが、逆の順序になっています。したがって、サブリスト1は、図に示すように逆になります。 サブリストが見つかると、マージプロセスが