棧的實際應用 四則運算

2021-10-05 08:23:59 字數 389 閱讀 4963

四則運算:

計算機在進行運算過程會先將中綴轉成字尾進行計算。

中綴表示式:(9+6)*3-8/4

字尾表示式:96+3 * 84/-

中綴轉字尾規則:

借助輔助棧,遇到數字或字母,列印;遇到符號,將當前符號與棧頂符號進行優先順序比較。如果當前符號優先順序高,則直接入棧,如果當前符號優先順序較低,則將棧頂元素依次出棧,直到比當前符號優先順序低為止,再將當前符號入棧;如果遇到『(』,無條件入棧;遇到『)』,則將棧內元素依次輸出,直到『(』停止。

中綴轉字尾簡單操作(適用於快速解決選擇題):

將表示式中的操作都用括號括起來,然後將運算子移到相應括號的後面。如:

(((9+6)*3)-(8/4))然後將然後將運算子移到相應括號的後面變為:96+3 * 84/-

棧應用 四則運算

輸入字串格式的算術表示式,如 3 2 輸出去結果。棧的應用 四則運算分為下列四個過程 讀取字串 並不是簡單地讀入,比如 當字串中有兩位數,例如12時,我們應該讀成 12 而不是 1 2 不然運算會出現錯誤 處理字串,給字串加0 為了保證字尾運算的正常執行,需要對出現的負數進行考慮。例如 4 3 為了...

棧的應用 簡單四則運算

思想 我們平時輸入的四則運算表示式,例如 9 3 1 2,屬於中綴表示式。我們需要將它轉換成字尾表示式 9 3 1 2 的形式求值。其中需要兩個棧 數字棧和運算子棧。過程 逐個讀取中綴表示式 char型 9 3 1 2 1.如果是數字則壓入數字棧 如果是大於一位的數字則需要寫個函式轉換成int型 2...

棧的應用 四則運算 c

四則運算主要分為兩個部分 中綴轉字尾 規則為 先遍歷中綴表示式的每乙個字元,如果是數字直接輸出到字尾表示式,如果是符號,需要判斷與棧頂符號的優先順序,是右括號或者優先順序高於棧頂符號 乘除優先於加減 則依次輸出出棧並輸出,然後將當前符號壓入棧。這裡把符號分為幾類 入棧 棧頂符號依次出棧並輸出直到棧頂...