0

インターネットと「ユーチューブ」を検索しましたが、これに関する適切なチュートリアルが見つかりませんでした。「後置」で特定の式の対応する「バイナリツリー」を描画するにはどうすればよいですか?

そして、この表現は中置詞と接頭辞でどのように見えるでしょうか?

これを段階的にどのように行うべきかわかりません:(

18 5 1 + / 4 * 3 5 18 6 / - + -

ノート:

前順、後順、およびインオーダーを描画するためのルールは次のとおりです。 1. 前順トラバーサル: ルート、左、右 2. 後順トラバーサル: 左、右、ルート、 右

試験に必要です

4

1 に答える 1

1

式を左から右にスキャンします。数字が見つかったら、(リーフ) ノードを構築し、それをスタックにプッシュします。オペレーターが見つかったら、ノードを作成し、スタックから 2 つのノードをポップし、それらを現在のノードの左右の子として接続し、ノードをスタックにプッシュして続行します。文字列の最後には、スタックにルートのみが必要です

ツリーがあれば、接頭辞と中置辞を見つけるのは簡単です。

これは、すべての演算子が 2 つの値を取る (単項演算子に簡単に適用できる)、つまり、すべての内部ノードに 2 つの子があるという仮定に基づいていることに注意してください。一般に、postfix からツリーを構築することは不可能です (wikipedia を参照)。

于 2013-05-05T06:27:28.803 に答える