1, 表達式一般由操作數(operand),運算符(operator)和界限符(delimiter)組成。操作數可以有常數,變量或者標識符。運算符分為算術運算符,關系運算符和邏輯運算符。基本界限符有左右括號和表達式結束符號。為了程序簡單,僅討論簡單算術表達式的求值問題。這種表達式只含加,減,乘,除和四則運算符,括號以及結束符‘#’。
2, 算法基本思想:
建立兩個棧:一個是操作數棧(Stack_nd),用以寄存操作數或運算結果;另一個是運算符棧(Stack_tr),用以寄存運算符和界限符。
依次讀入表達式中的字符,若是操作數則壓進操作數棧(Stack_nd),若是運算符,則與運算棧(Stack_tr)的棧頂元素比較優先級,根據比較的結果進行相應的操作。
3, 規定算符間的優先級;算符q1與q2至多是下面三種關系之一:
q1<q2 q1的優先權低于q2
q1=q2 q1的優先權等于 q2
q1>q2 q1的優先權高于 q2
標簽:
上傳時間:
2013-12-21
上傳用戶:FreeSky