0

こんにちは、私は助けを求めることができますか?中置から後置への式はありますか?...それらを変換し、後置式と後置評価を与える方法がわかりません...たとえば、この 1*2(5+2 )-9/6。

4

2 に答える 2

1

infixからに変換するには、次の手順に従いますpostfix

Define a stack
Go through each character in the string
If it is between 0 to 9, append it to output string.
If it is left brace push to stack
If it is operator *+-/ then 
    If the stack is empty push it to the stack
    If the stack is not empty then start a loop:
            If the top of the stack has higher precedence
            Then pop and append to output string
            Else break
        Push to the stack

If it is right brace then
    While stack not empty and top not equal to left brace
    Pop from stack and append to output string
    Finally pop out the left brace.

If there is any input in the stack pop and append to the output string.

図を使用して手順をよりよく理解するには、こちらをお読みください。

于 2012-08-17T08:46:19.857 に答える
0

異なる表記法で式を取得したい場合、これを行う 1 つの方法は、バイナリ ツリーを使用し、変換に前/中/後順トラバーサルを使用することです。

于 2012-08-17T08:46:33.770 に答える