問題タブ [postfix-notation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - テキスト ファイルを読み取ると ArrayIndexOutOfBoundsException が返される
この .txt ファイルを自分のプログラムに読み込もうとしています (手動入力の改善として)。入力 txt ファイルを受け入れるようにメソッドを変換するのに問題があります。"infix[--pos]='\0';" 行で arrayindexoutofboundsexception が発生します。
recursion - *、/、+、- 以外の演算子を含む RPN
というクラスがありNode
ます。
入力から最初の値をNode root = null;
受け取ると、次のように実行されます。
次のステップは、レベルごとに「ポインタ」ツリーを埋めながら、または新しいものをNode
指すことによって、リストの最後に新しいものを追加することです。だから私はこのようなことをする必要があります:root.primaryNext
root.secondaryNext
Node
これは、再帰的な方法でノードの各レベルに適用される ||、&&、|、& 演算子を使用して実行できると思います。そう:
- RPN のように C# で操作するにはどうすればよいですか?
- できるとしたら、どの方法が一番いいでしょうか?私は再帰をかなりよく理解していますが、最善の方法を実行できない可能性があります。
ありがとう。
c++ - Postfix 計算機への挿入、sin cos および X&Y 変数の実装?
私は C++ にはかなり慣れていて、 と をサポートする後置計算機への中置を作成する必要がsin()
ありcos()
、 のような 2 変数関数でなければなりz=3x*sin(3+4y)
ません。 sin と cos の実装方法を知っているので+
、-
、/
、 などの演算子としてそれらを設定し、sin() の "s" や cos の "c" などの特定のトークンを設定できると言われました。 ()しかし、私はその方法を正確には知りませんし、変数 x と y を実装する方法も知りません。これは私が尋ねるべきことではないことを知っていますが、私はただ疲れていて絶望的です.
これが私が持っているコードです。私はUbuntu 11を使用しています:
infix-notation - 中置後置変換プログラム(java)
私は (スタックを使用して) ポストフィックス プログラムへのインフィックスに取り組んでいましたが、これらすべての努力の後、どこかで問題が発生しました。変換せずにインフィックスとして出力を取得しています。私の intopost メソッドが正しいかどうかを確認してください。
c++ - スタックを使用して中置式から後置式 (C++) に変換する
私の講師は、スタックを使用して式を後置に変換および挿入するプログラムを作成するという課題を与えました。中置式を読み取るためのスタック クラスといくつかの関数を作成しました。
しかし、convertToPostfix(char * const inFix, char * const postFix)
スタックを使用して配列 inFix 内の inFix 式を配列 postFix 内の事後修正式に変換する役割を担うこの 1 つの関数は、想定どおりの動作をしていません。皆さんは私を助けて、私が間違っていることを教えてもらえますか?
以下は、inFix から postFix に変換する関数があるコードであり、convertToPostfix(char * const inFix, char * const postFix)
修正の助けが必要なものです。
関数 convertToPostfix は、このアルゴリズムを使用して作成されていることに注意してください。
- 左括弧 '(' をスタックにプッシュします。
- infix の末尾に右括弧 ')' を追加します。
スタックが空でない間、左から右に infix を読み取り、次のことを行います。
- infix の現在の文字が数字の場合、postfix の次の要素にコピーします。
- infix の現在の文字が左括弧である場合、それをスタックにプッシュします。
infix の現在の文字が演算子の場合、
- 現在の演算子と同等またはそれ以上の優先順位を持つスタックの一番上に演算子 (存在する場合) をポップし、ポップされた演算子を後置に挿入します。
- infix 内の現在の文字をスタックにプッシュします。
- infix の現在の文字が右括弧の場合
- スタックの一番上から演算子をポップし、左括弧がスタックの一番上になるまで後置に挿入します。
- スタックから左括弧をポップ (および破棄) します。
c++ - C++ での分流場アルゴリズム
中置文字列 (「3 + 4 * 9」など) を取り、それを後置 (「4 9 * 3 +」など) に変換する関数が必要です。
括弧内に括弧を入れるまで、私はそれを機能させました。私は一日中それに取り組んできましたが、自分が間違っていることを理解できません。本当に近くにいるような気がします!
ありがとう!コードは次のとおりです。
java - 接尾辞計算機、3つの数字を続けて処理する方法は?
これまでの私のコードは次のとおりです。
}
基本はわかっていると思いますが、たとえば「2 3 4 *-」のように、3桁以上続けて後置計算を処理するにはどうすればよいですか?どんな助けでもいただければ幸いです。前もって感謝します!
c++ - Postfix から Infix への会話
この式を後置から中置に解くことができません。詳しく分かりやすく教えてください
java - Javaの操車場アルゴリズムが機能していませんか?
これが私のコードです:
入力3+5 * 6 + 7の場合、3 5 6 * + 7 +を返すことになっていますが、代わりに3 + 5 * 6 + 7+*を取得します。ウィキペディアのページにあるアルゴリズムの指示に従ったので、なぜか混乱しています...どこか別の場所で混乱していますか?よろしくお願いします!