私は式が得られたので、x+(y*z)
としましょう。バイナリツリーに変換する必要があります。私はオンラインで見て、infix
とpostfix
のようなキーワードを見てきました。正規表現をさらにバイナリツリーに簡単に変換できる形式に変換するのに役立ちます。式をバイナリツリーに変換するアルゴリズム
私の唯一の問題は、このinfix
またはpostfix
メソッドを学んだことがないということです。変換する方法は他にありますか、それとも唯一の方法ですか?私は検索してみましたが、これが私が得た唯一の結果でした。
オンラインリソースを使用せずに解決するのは難しい問題です。
は[操車場アルゴリズム(https://en.wikipedia.org/の詳細な説明を見てpyparsingを用いて例えば
、 wiki/Shunting-yard_algorithm) - 中置(例えば 'x +(y * z)')を後置(例えば 'xyz * +')に変換することです。 –
中置と後置(および接頭辞)は、2項演算子を表現する方法です。正規表現は、Kleeneの星や '+'のような単項演算子しか持たない。正規表現や算術式を扱っていますか? –
これは変数を持つ式です。たとえば、-x、(x + y)、(x *(x + y)) –