表示式求解

2021-09-25 07:51:52 字數 348 閱讀 2547

1 解題思路

構造包含頂指標,底指標和增量的結構體。然後分別構造乙個只包含運算子的棧(optr)和只包含數字的棧(opnd)。之後依次讀入所輸入的表示式。判斷是不是數字,如果是數字就將數字放入數字棧(opnd)。如果不是即運算子,讓運算子棧棧頂元素和讀入的運算子進行比較。如果優先順序小於將讀入的運算子入棧,優先順序相等的就讓棧頂元素出棧,優先順序的大於的就讓棧頂元素彈棧,並且連續兩次讓數字棧彈棧,得到乙個運算子和兩個數字,進行計算,得到的結果放入數字棧。迴圈以上過程直到讀入的表示式字元為#為止。最後將數字棧出棧,即得到結果。

表示式求解

表示式求解是棧應用乙個典型的例子,其基本演算法思想為 1.首先初始化1個運算數棧和1個運算子棧,運算子棧填入 表示棧空。2.對輸入表示式進行逐字節解析,如果是運算元,則直接壓入運算數棧,如果是運算子則進行一下比較 1 如果棧頂運算子優先順序低於讀入運算子優先順序,則將運算子壓棧,繼續解析下面的位元組...

表示式求解

構造包含頂指標,底指標和增量的結構體。然後分別構造乙個只包含運算子的棧 optr 和只包含數字的棧 opnd 之後依次讀入所輸入的表示式。判斷是不是數字,如果是數字就將數字放入數字棧 opnd 如果不是即運算子,讓運算子棧棧頂元素和讀入的運算子進行比較。如果優先順序小於將讀入的運算子入棧,優先順序相...

表示式求解程式

均已除錯通過,編譯器為dev c include include include include define stack size 100 char operator 7 用6出錯!int result,ch2 char opr 定義全域性變數 優先關係 char prioritytable 7 ...