PHP逆ポーランド給与計算例

*文
*文オリジナル
2017-12-27 13:41:541361ブラウズ

PHP での給与計算に逆ポーランド語を使用する方法。この記事では、主に逆ポーランド語アルゴリズムを使用して賃金を計算する PHP の方法を紹介し、例とともに PHP 逆ポーランド語アルゴリズムの原理と関連使用テクニックを分析します。お役に立てれば幸いです。

この記事の例では、PHP で逆ポーランド式を使用して給与を計算する方法を説明します。皆さんの参考に共有してください。詳細は次のとおりです:

通常の inorder 式を逆ポーランド式に変換するための一般的なアルゴリズムは次のとおりです:

まず、2 つのスタックを割り当てる必要があります。1 つは一時記憶演算子スタック S1 (終了記号を含む) としてです。逆ポーランド語スタック S2 (空のスタック) への入力として、S1 スタックを優先順位の最も低い演算子 # に最初に入れることができます。中置式は優先順位の最も低い演算子で終わる必要があることに注意してください。 # である必要はなく、他の文字も指定できます。中置式の左端から文字を取得し、次の手順を段階的に進めます:

(1) 取り出した文字がオペランドの場合、完全なオペランドが分析され、オペランドが S2 スタックに直接送信されます。取り出した文字が演算文字で、現在のS1スタックの先頭が(の場合、現在の演算子を直接S1スタックにプッシュします。

(2) 取り出した文字が演算子の場合、演算子をと比較します。 S1 スタックの最上位の要素 演算子が優先される場合 S1 スタックの最上位の演算子の優先順位が S1 スタックの演算子の優先順位よりも高い場合、S1 スタックの最上位の演算子が優先されます。 S1 スタックの先頭の演算子が演算子の優先順位よりも低くなるまで (等しい場合は含まない)、S2 スタックに送信されます。

(3) 取り出した文字が "( の場合。

(4) 取り出した文字が「(」の場合はS1スタックの先頭に送られます。文字が「)」の場合は、S1スタックの先頭に送られます。 S1 スタックの先頭に近い「(」の間にある演算子は 1 つずつスタックからポップされ、順番に S2 スタックに送られます。このとき、「(」は破棄されます。

(5) 繰り返し全ての入力文字が処理されるまで、上記ステップ1〜4ステップ

(6) 取り出した文字が「#」の場合、S1スタック内のすべての演算子(「#」を除く)を1つずつポップし、S2に送信します

上記の手順を完了すると、S2 スタックは逆ポーランド語形式で結果を出力します。

math_rpn.php ファイルは次のとおりです。

うわー

関連する推奨事項:

php バイナリ ツリー トラバーサル アルゴリズムと例

php array_chunk() を使用せずに配列を分割するアルゴリズム

php イベント候補抽選機能を実装コード

以上がPHP逆ポーランド給与計算例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。