中綴表示式轉化為字尾表示式,並計算結果

2021-08-09 17:21:45 字數 678 閱讀 9116

#include using namespace std;

int digitizing ( char ch ) //字元轉換成數字才可在棧中比較

}char prototype ( int n )//還原輸出

}string conversion ( string str )//中綴轉換字尾

else if ( op_value == 5 ) //判斷是否為')',是的話,輸出棧直到遇到'(',完後j遞減一次

j--;

flag = 0;

}else if ( flag == 1 || op_value / 2 > op[j] / 2 || j == -1 ) //入棧,到這步結束尾要把flag置0,因為操作符棧裡為"(*",

else

}i++;

} while ( j >= 0 )

s += prototype ( op[j--] );

return s;

}int cul ( char ch, int op1, int op2 )

}int calculation ( string str )//字尾計算

i++;

} return op[0];

}int main()

巧妙地利用了除2法,才可以比較運算子之間的大小。

中綴表示式轉化為字尾表示式,並計算字尾表示式

標頭檔案 該函式中用了棧的特點,所以增加了棧的標頭檔案,下面是棧的標頭檔案 ifndef stack h define stack h template class stack t pop template stack stack template bool stack empty template...

中綴表示式轉化為字尾表示式

注意 中綴表示式需要空格隔開運算元或者操作符 關鍵有 判斷是否操作符,操作符優先順序 public class profixexpression 計算排好的字尾操作計算式 param prostr return public static intprofixcalculate string pros...

中綴表示式轉化為字尾表示式

中綴表示式轉化為字尾表示式有兩種方法,一種是利用棧,一種是把表示式轉化為樹再進一步求解,今天我們來深入了解一下這兩種方法 給出下面乙個例子 我們把中綴表示式 9 3 1 3 10 2 轉化為字尾表示式 1.首先初始化乙個空棧,用來對符號進出棧使用 2.第乙個字元是數字9,輸出9,將後面的符號 進棧 ...